From 87d22813707248b0a58d050193ab6a27bd784f47 Mon Sep 17 00:00:00 2001 From: jiangkunpeng Date: Thu, 19 May 2022 11:24:04 +0800 Subject: [PATCH 1/2] =?UTF-8?q?updateByQuery=E5=A2=9E=E5=8A=A0ignoreProper?= =?UTF-8?q?ties=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastmybatis-core/pom.xml | 74 +++++++----- .../fastmybatis/core/mapper/UpdateMapper.java | 18 +++ .../core/support/CommonService.java | 21 ++++ .../fastmybatis/tpl/microsoftsqlserver.vm | 26 +++++ .../main/resources/fastmybatis/tpl/mysql.vm | 26 +++++ .../main/resources/fastmybatis/tpl/oracle.vm | 52 ++++++--- .../resources/fastmybatis/tpl/postgresql.vm | 26 +++++ .../main/resources/fastmybatis/tpl/sqlite.vm | 26 +++++ .../test/java/com/myapp/TUserMapperTest.java | 84 ++++++++----- .../test/java/com/myapp/TUserMapperTest.java | 110 +++++++++++------- 10 files changed, 347 insertions(+), 116 deletions(-) diff --git a/fastmybatis-core/pom.xml b/fastmybatis-core/pom.xml index 4857610..8535109 100644 --- a/fastmybatis-core/pom.xml +++ b/fastmybatis-core/pom.xml @@ -73,15 +73,27 @@ + + + + + + + + + + - - ossrh - https://oss.sonatype.org/content/repositories/snapshots - - ossrh - https://oss.sonatype.org/service/local/staging/deploy/maven2/ + tengyun-public + tengyun-maven-public + http://203.195.183.207/repository/tengyun-maven-public/ + + tengyun-public + tengyun-maven-public + http://203.195.183.207/repository/tengyun-maven-public/ + @@ -106,17 +118,17 @@ - - org.sonatype.plugins - nexus-staging-maven-plugin - 1.6.3 - true - - ossrh - https://oss.sonatype.org/ - true - - + + + + + + + + + + + org.apache.maven.plugins @@ -130,20 +142,20 @@ - - org.apache.maven.plugins - maven-gpg-plugin - 1.5 - - - sign-artifacts - verify - - sign - - - - + + + + + + + + + + + + + + diff --git a/fastmybatis-core/src/main/java/com/gitee/fastmybatis/core/mapper/UpdateMapper.java b/fastmybatis-core/src/main/java/com/gitee/fastmybatis/core/mapper/UpdateMapper.java index e55edc6..6affa2f 100644 --- a/fastmybatis-core/src/main/java/com/gitee/fastmybatis/core/mapper/UpdateMapper.java +++ b/fastmybatis-core/src/main/java/com/gitee/fastmybatis/core/mapper/UpdateMapper.java @@ -28,6 +28,24 @@ public interface UpdateMapper extends Mapper { */ int updateIgnoreNull(E entity); + /** + * 根据条件更新
+ *
+     *{@literal
+     * Query query = new Query().eq("state", 2);
+     * TUser user = new TUser();
+     * user.setUsername("李四");
+     * int i = mapper.updateByQuery(user, query);
+     * }
+     * 对应SQL: UPDATE `t_user` SET `username`=? WHERE state = ?
+     *
+ * @param entity 待更新的数据 + * @param query 更新条件 + * @param ignoreProperties 忽略更新的属性名 + * @return 受影响行数 + */ + int updateByQuery(@Param("entity") E entity, @Param("query") Query query, @Param("ignoreProperties") String... ignoreProperties); + /** * 根据条件更新,map中的数据转化成update语句set部分,key为数据库字段名
*
diff --git a/fastmybatis-core/src/main/java/com/gitee/fastmybatis/core/support/CommonService.java b/fastmybatis-core/src/main/java/com/gitee/fastmybatis/core/support/CommonService.java
index 325d7b5..d5baeec 100644
--- a/fastmybatis-core/src/main/java/com/gitee/fastmybatis/core/support/CommonService.java
+++ b/fastmybatis-core/src/main/java/com/gitee/fastmybatis/core/support/CommonService.java
@@ -753,6 +753,27 @@ public interface CommonService> {
         return getMapperRunner().run(mapper -> mapper.updateIgnoreNull(entity));
     }
 
+    /**
+     * 根据条件更新
+ *
+     * {@literal
+     * Query query = new Query().eq("state", 2));
+     * TUser user = new TUser());
+     * user.setUsername("李四"));
+     * int i = mapper.updateByQuery(user, query));
+     * }
+     * 对应SQL: UPDATE `t_user` SET `username`=? WHERE state = ?
+     * 
+ * + * @param entity 待更新的数据 + * @param query 更新条件 + * @param ignoreProperties 忽略更新的属性名 + * @return 受影响行数 + */ + default int updateByQuery(E entity, Query query, String... ignoreProperties) { + Objects.requireNonNull(entity); + return getMapperRunner().run(mapper -> mapper.updateByQuery(entity, query, ignoreProperties)); + } /** * 根据条件更新,map中的数据转化成update语句set部分,key为数据库字段名
diff --git a/fastmybatis-core/src/main/resources/fastmybatis/tpl/microsoftsqlserver.vm b/fastmybatis-core/src/main/resources/fastmybatis/tpl/microsoftsqlserver.vm index 2116eb0..1dfc874 100644 --- a/fastmybatis-core/src/main/resources/fastmybatis/tpl/microsoftsqlserver.vm +++ b/fastmybatis-core/src/main/resources/fastmybatis/tpl/microsoftsqlserver.vm @@ -324,6 +324,32 @@ #end + + + UPDATE ${table.tableName} + + #foreach($column in $columns) + #if(${column.isUpdateColumn}) + #if(${column.hasTypeHandlerUpdate}) + ${column.columnName}=${column.mybatisUpdateValuePrefix}, + #else + + + ${column.columnName}=${column.mybatisUpdateValuePrefix}, + + + #end + #end + #end + + + #if(${table.hasLogicDeleteColumn}) + + AND ${table.logicDeleteColumn.columnName} = ${table.logicDeleteColumn.logicNotDeleteValueString} + + #end + + UPDATE ${table.tableName} diff --git a/fastmybatis-core/src/main/resources/fastmybatis/tpl/mysql.vm b/fastmybatis-core/src/main/resources/fastmybatis/tpl/mysql.vm index 160a88b..b2dee1a 100644 --- a/fastmybatis-core/src/main/resources/fastmybatis/tpl/mysql.vm +++ b/fastmybatis-core/src/main/resources/fastmybatis/tpl/mysql.vm @@ -317,6 +317,32 @@ #end + + + UPDATE `${table.tableName}` + + #foreach($column in $columns) + #if(${column.isUpdateColumn}) + #if(${column.hasTypeHandlerUpdate}) + `${column.columnName}`=${column.mybatisUpdateValuePrefix}, + #else + + + `${column.columnName}`=${column.mybatisUpdateValuePrefix}, + + + #end + #end + #end + + + #if(${table.hasLogicDeleteColumn}) + + AND ${table.logicDeleteColumn.columnName} = ${table.logicDeleteColumn.logicNotDeleteValueString} + + #end + + UPDATE `${table.tableName}` diff --git a/fastmybatis-core/src/main/resources/fastmybatis/tpl/oracle.vm b/fastmybatis-core/src/main/resources/fastmybatis/tpl/oracle.vm index b40325b..6c66e9b 100644 --- a/fastmybatis-core/src/main/resources/fastmybatis/tpl/oracle.vm +++ b/fastmybatis-core/src/main/resources/fastmybatis/tpl/oracle.vm @@ -114,19 +114,19 @@ @@ -331,6 +331,32 @@ #end + + + UPDATE ${table.tableName} + + #foreach($column in $columns) + #if(${column.isUpdateColumn}) + #if(${column.hasTypeHandlerUpdate}) + ${column.columnName}=${column.mybatisUpdateValuePrefix}, + #else + + + ${column.columnName}=${column.mybatisUpdateValuePrefix}, + + + #end + #end + #end + + + #if(${table.hasLogicDeleteColumn}) + + AND ${table.logicDeleteColumn.columnName} = ${table.logicDeleteColumn.logicNotDeleteValueString} + + #end + + UPDATE ${table.tableName} diff --git a/fastmybatis-core/src/main/resources/fastmybatis/tpl/postgresql.vm b/fastmybatis-core/src/main/resources/fastmybatis/tpl/postgresql.vm index a91b094..6cd0a1b 100644 --- a/fastmybatis-core/src/main/resources/fastmybatis/tpl/postgresql.vm +++ b/fastmybatis-core/src/main/resources/fastmybatis/tpl/postgresql.vm @@ -296,6 +296,32 @@ #end + + + UPDATE ${table.tableName} + + #foreach($column in $columns) + #if(${column.isUpdateColumn}) + #if(${column.hasTypeHandlerUpdate}) + ${column.columnName}=${column.mybatisUpdateValuePrefix}, + #else + + + ${column.columnName}=${column.mybatisUpdateValuePrefix}, + + + #end + #end + #end + + + #if(${table.hasLogicDeleteColumn}) + + AND ${table.logicDeleteColumn.columnName} = ${table.logicDeleteColumn.logicNotDeleteValueString} + + #end + + UPDATE ${table.tableName} diff --git a/fastmybatis-core/src/main/resources/fastmybatis/tpl/sqlite.vm b/fastmybatis-core/src/main/resources/fastmybatis/tpl/sqlite.vm index 6b5a026..83c4cb9 100644 --- a/fastmybatis-core/src/main/resources/fastmybatis/tpl/sqlite.vm +++ b/fastmybatis-core/src/main/resources/fastmybatis/tpl/sqlite.vm @@ -279,6 +279,32 @@ #end + + + UPDATE ${table.tableName} + + #foreach($column in $columns) + #if(${column.isUpdateColumn}) + #if(${column.hasTypeHandlerUpdate}) + ${column.columnName}=${column.mybatisUpdateValuePrefix}, + #else + + + ${column.columnName}=${column.mybatisUpdateValuePrefix}, + + + #end + #end + #end + + + #if(${table.hasLogicDeleteColumn}) + + AND ${table.logicDeleteColumn.columnName} = ${table.logicDeleteColumn.logicNotDeleteValueString} + + #end + + UPDATE ${table.tableName} diff --git a/fastmybatis-demo/fastmybatis-demo-springboot/src/test/java/com/myapp/TUserMapperTest.java b/fastmybatis-demo/fastmybatis-demo-springboot/src/test/java/com/myapp/TUserMapperTest.java index 2e1d70c..c45f35e 100644 --- a/fastmybatis-demo/fastmybatis-demo-springboot/src/test/java/com/myapp/TUserMapperTest.java +++ b/fastmybatis-demo/fastmybatis-demo-springboot/src/test/java/com/myapp/TUserMapperTest.java @@ -49,10 +49,10 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { /** * 根据主键查询 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * WHERE `id` = ? LIMIT 1
      * 
*/ @@ -64,10 +64,10 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { /** * 根据条件查询一条记录 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * WHERE id = ? AND money > ? LIMIT 1
      * 
*/ @@ -84,10 +84,10 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { /** * 根据字段查询一条记录 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * WHERE t.`username` = ? LIMIT 1
      * 
*/ @@ -99,10 +99,10 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { /** * 根据条件查询多条记录 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * WHERE state = ? AND money IN ( ? , ? , ? )
      * 
*/ @@ -235,7 +235,7 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { /** * 返回自定义字段,并转换成自定义类集合 - * + * *
      * SELECT t.id , t.username as username FROM `t_user` t WHERE username = ?
      * 
@@ -316,7 +316,7 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { /** * 获取记录数 - * + * *
      * SELECT count(*) FROM `t_user` t WHERE username = ?
      * 
@@ -362,7 +362,7 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { UserVO userVo = mapper.getBySpecifiedColumns(Arrays.asList("id", "username"), query, UserVO.class); System.out.println(userVo); } - + @Test public void testCount() { Query query = new Query(); @@ -379,10 +379,10 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { /** * 分页查询 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * WHERE username = ? LIMIT ?,?
      * 
*/ @@ -481,10 +481,10 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { /** * 排序 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * ORDER BY id ASC,state DESC
      * 
*/ @@ -522,10 +522,10 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { /** * 联表分页 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t LEFT JOIN user_info t2 ON t.id = t2.user_id 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t LEFT JOIN user_info t2 ON t.id = t2.user_id
      * WHERE t.isdel = 0 LIMIT ?,?
      * 
*/ @@ -568,7 +568,7 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { public void testSql() { Query query = new Query(); query.eq("state", 0) - .sql("username like '%?%' or isdel=?", "'--;\\'三", 1); + .sql("username like '%?%' or isdel=?", "'--;\\'三", 1); List list = mapper.list(query); System.out.println("=============="); for (TUser user : list) { @@ -593,13 +593,13 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { } System.out.println("=============="); } - + /** * 联表查询,并返回指定字段 *
      * SELECT t2.user_id userId , t.username , t2.city
-     * FROM `t_user` t 
-     * LEFT JOIN user_info t2 ON t.id = t2.user_id WHERE t.isdel = 0 
+     * FROM `t_user` t
+     * LEFT JOIN user_info t2 ON t.id = t2.user_id WHERE t.isdel = 0
      * 
*/ @Test @@ -611,7 +611,7 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { List column = Arrays.asList("t2.user_id userId", "t.username", "t2.city"); // 再将map转换成实体bean List list = mapper.listBySpecifiedColumns(column, query, UserInfoVo.class); - + this.print(list); } @@ -698,7 +698,7 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { /** * 批量添加.支持mysql,sqlserver2008。如需支持其它数据库使用saveMulti方法 - * + * *
      * INSERT INTO person (id, name, age) VALUES (1, 'Kelvin', 22), (2, 'ini_always', 23);
      * 
@@ -814,7 +814,27 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { int i = mapper.updateIgnoreNull(user); print("updateNotNull --> " + i); } - + + /** + * 根据条件更新。将状态为2的数据姓名更新为李四 + * UPDATE `t_user` SET `username`=?, `add_time`=? WHERE state = ? + */ + @Test + public void testUpdateByQuery() { + Query query = new Query().eq("state", 2); + // 方式1 + TUser user = new TUser(); + user.setUsername("李四"); + int i = mapper.updateByQuery(user, query); + print("updateByQuery --> " + i); + + /* // 方式2 + Map map = new HashMap(); + map.put("username", "李四2"); + i = mapper.updateByQuery(map, query); + print("updateByQuery --> " + i);*/ + } + @Test public void testUpdateByMap() { Query query = new Query().eq("id", 1); @@ -870,7 +890,7 @@ public class TUserMapperTest extends FastmybatisSpringbootApplicationTests { int i = mapper.deleteByQuery(query); print("deleteByQuery --> " + i); } - + /** * 强力查询,将无视逻辑删除字段 */ diff --git a/fastmybatis-demo/fastmybatis-demo-springmvc/src/test/java/com/myapp/TUserMapperTest.java b/fastmybatis-demo/fastmybatis-demo-springmvc/src/test/java/com/myapp/TUserMapperTest.java index f22ac8f..7a37e47 100644 --- a/fastmybatis-demo/fastmybatis-demo-springmvc/src/test/java/com/myapp/TUserMapperTest.java +++ b/fastmybatis-demo/fastmybatis-demo-springmvc/src/test/java/com/myapp/TUserMapperTest.java @@ -42,10 +42,10 @@ public class TUserMapperTest extends TestBase { /** * 根据主键查询 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * WHERE `id` = ? LIMIT 1
      * 
*/ @@ -57,10 +57,10 @@ public class TUserMapperTest extends TestBase { /** * 根据条件查询一条记录 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * WHERE id = ? AND money > ? LIMIT 1
      * 
*/ @@ -72,7 +72,7 @@ public class TUserMapperTest extends TestBase { TUser user = mapper.getByQuery(query); print(user); } - + @Test public void testGetQuery2() { TUser user = new TUser(); @@ -81,15 +81,15 @@ public class TUserMapperTest extends TestBase { Query query = Query.build(user); TUser user2 = mapper.getByQuery(query); print(user2); - + } /** * 根据字段查询一条记录 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * WHERE t.`username` = ? LIMIT 1
      * 
*/ @@ -101,10 +101,10 @@ public class TUserMapperTest extends TestBase { /** * 根据条件查询列表 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * WHERE state = ? AND money IN ( ? , ? , ? )
      * 
*/ @@ -182,7 +182,7 @@ public class TUserMapperTest extends TestBase { /** * 获取记录数 - * + * *
      * SELECT count(*) FROM `t_user` t WHERE username = ?
      * 
@@ -197,8 +197,8 @@ public class TUserMapperTest extends TestBase { print("total:" + total); } - - + + @Test public void testLike() { Query query = new Query(); @@ -214,8 +214,8 @@ public class TUserMapperTest extends TestBase { * 分页查询 * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * WHERE username = ? LIMIT ?,?
      * 
*/ @@ -242,10 +242,10 @@ public class TUserMapperTest extends TestBase { /** * 排序 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t
      * ORDER BY id ASC,state DESC
      * 
*/ @@ -259,10 +259,10 @@ public class TUserMapperTest extends TestBase { /** * 联表分页 - * + * *
-     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` 
-     * FROM `t_user` t LEFT JOIN user_info t2 ON t.id = t2.user_id 
+     * SELECT t.`id` , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money`
+     * FROM `t_user` t LEFT JOIN user_info t2 ON t.id = t2.user_id
      * WHERE t.isdel = 0 LIMIT ?,?
      * 
*/ @@ -280,11 +280,11 @@ public class TUserMapperTest extends TestBase { } System.out.println("=============="); } - + /** - * SELECT DISTINCT(t.`id`) , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` FROM `t_user` t - * WHERE username = ? AND t.isdel = 0 + * SELECT DISTINCT(t.`id`) , t.`username` , t.`state` , t.`isdel` , t.`remark` , t.`add_time` , t.`money` , t.`left_money` FROM `t_user` t + * WHERE username = ? AND t.isdel = 0 */ @Test public void testDistinct() { @@ -292,7 +292,7 @@ public class TUserMapperTest extends TestBase { // 添加查询条件 query.eq("username", "张三") .enableDistinct(); - + List list = mapper.list(query); this.print(list); } @@ -358,7 +358,7 @@ public class TUserMapperTest extends TestBase { /** * 批量添加.支持mysql,sqlserver2008。如需支持其它数据库使用saveMulti方法 - * + * *
      * INSERT INTO person (id, name, age) VALUES (1, 'Kelvin', 22), (2, 'ini_always', 23);
      * 
@@ -386,13 +386,13 @@ public class TUserMapperTest extends TestBase { /** * 批量添加,兼容更多数据库版本,采用union all - * + * *
-     * INSERT INTO `t_user` ( `username` , `state` , `isdel` , `remark` , `add_time` , `money` , `left_money` ) 
-     * SELECT ? , ? , ? , ? , ? , ? , ? 
-     * UNION ALL 
-     * SELECT ? , ? , ? , ? , ? , ? , ? 
-     * UNION ALL 
+     * INSERT INTO `t_user` ( `username` , `state` , `isdel` , `remark` , `add_time` , `money` , `left_money` )
+     * SELECT ? , ? , ? , ? , ? , ? , ?
+     * UNION ALL
+     * SELECT ? , ? , ? , ? , ? , ? , ?
+     * UNION ALL
      * SELECT ? , ? , ? , ? , ? , ? , ?
      * 
*/ @@ -475,7 +475,37 @@ public class TUserMapperTest extends TestBase { int i = mapper.updateIgnoreNull(user); print("updateNotNull --> " + i); } - + + /** + * 根据条件更新。将状态为2的数据姓名更新为李四 + * UPDATE `t_user` SET `username`=?, `add_time`=? WHERE state = ? AND isdel = 0 + * 注:逻辑删除字段在这里有效 + */ + @Test + public void testUpdateByQuery() { + Query query = new Query().eq("state", 2); + // 无视逻辑删除字段 + //query.ignoreLogicDeleteColumn(); + // 方式1 + TUser user = new TUser(); + user.setUsername("李四"); + user.setRemark(null); + int i = mapper.updateByQuery(user, query); + print("updateByQuery --> " + i); + + // 方式2 + // key为数据库字段名 + /* + * UPDATE `t_user` SET remark = ? , username = ? WHERE state = ? + * Parameters: null, 李四2(String), 2(Integer) + */ + /*Map map = new HashMap(); + map.put("username", "李四2"); + map.put("remark", null); + int i = mapper.updateByMap(map, query); + print("updateByQuery --> " + i);*/ + } + @Test public void testListByPojo() { UserDTO param = new UserDTO(); @@ -511,7 +541,7 @@ public class TUserMapperTest extends TestBase { print(tUser); } } - + public static class UserDTO { /** 用户名, 数据库字段:username */ @Condition(operator = Operator.likeRight, index = 1) @@ -589,7 +619,7 @@ public class TUserMapperTest extends TestBase { int i = mapper.deleteByQuery(query); print("deleteByQuery --> " + i); } - + @Test public void testDeleteByQuery2() { TUser user = new TUser(); @@ -598,7 +628,7 @@ public class TUserMapperTest extends TestBase { int i = mapper.deleteByQuery(query); print("deleteByQuery2 --> " + i); } - + /** * 强力查询,将无视逻辑删除字段 */ -- Gitee From 0353959f9ccc5b7babf01ec14f6c44c79883d5eb Mon Sep 17 00:00:00 2001 From: jiangkunpeng Date: Thu, 19 May 2022 11:25:24 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=BF=98=E5=8E=9Fpom?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fastmybatis-core/pom.xml | 74 +++++++++++++++++----------------------- 1 file changed, 31 insertions(+), 43 deletions(-) diff --git a/fastmybatis-core/pom.xml b/fastmybatis-core/pom.xml index 8535109..4857610 100644 --- a/fastmybatis-core/pom.xml +++ b/fastmybatis-core/pom.xml @@ -73,27 +73,15 @@ - - - - - - - - - - - - tengyun-public - tengyun-maven-public - http://203.195.183.207/repository/tengyun-maven-public/ - - tengyun-public - tengyun-maven-public - http://203.195.183.207/repository/tengyun-maven-public/ + ossrh + https://oss.sonatype.org/content/repositories/snapshots + + ossrh + https://oss.sonatype.org/service/local/staging/deploy/maven2/ + @@ -118,17 +106,17 @@ - - - - - - - - - - - + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.3 + true + + ossrh + https://oss.sonatype.org/ + true + + org.apache.maven.plugins @@ -142,20 +130,20 @@ - - - - - - - - - - - - - - + + org.apache.maven.plugins + maven-gpg-plugin + 1.5 + + + sign-artifacts + verify + + sign + + + + -- Gitee