优化 SqlMap 性能,增加 update 和 insert 生成参数接口,方便在 Mapper 中直接引用。
This commit is contained in:
@@ -24,5 +24,25 @@
|
||||
</where>
|
||||
ORDER BY ${sqlMap.order.toSql()}
|
||||
</select>
|
||||
|
||||
<!-- 重写 Dao 中的 insert 查询方法 v5.11.1
|
||||
<insert id="insert">
|
||||
INSERT INTO ${sqlMap.insert.toTableSql()}
|
||||
(${sqlMap.insert.toColumnSql()})
|
||||
VALUES (${sqlMap.insert.toValuesSql()})
|
||||
</insert> -->
|
||||
|
||||
<!-- 重写 Dao 中的 update 查询方法 v5.11.1
|
||||
<update id="update">
|
||||
UPDATE ${sqlMap.update.toTableSql()}
|
||||
SET ${sqlMap.update.toColumnSql()}
|
||||
WHERE ${sqlMap.update.toWhereSql()}
|
||||
</update> -->
|
||||
|
||||
<!-- 重写 Dao 中的 phyDelete 查询方法 v5.11.1
|
||||
<delete id="phyDelete">
|
||||
DELETE FROM ${sqlMap.update.toTableSql()}
|
||||
WHERE ${sqlMap.update.toWhereSql()}
|
||||
</delete> -->
|
||||
|
||||
</mapper>
|
||||
@@ -33,7 +33,7 @@ import java.util.List;
|
||||
public class DaoMapperTest extends BaseSpringContextTests {
|
||||
|
||||
@Autowired
|
||||
private ConfigDao configDao;
|
||||
private PostDao postDao;
|
||||
@Autowired
|
||||
private UserDao userDao;
|
||||
@Autowired
|
||||
@@ -41,8 +41,6 @@ public class DaoMapperTest extends BaseSpringContextTests {
|
||||
@Autowired
|
||||
private CompanyDao companyDao;
|
||||
@Autowired
|
||||
private DictDataDao dictDataDao;
|
||||
@Autowired
|
||||
private FileUploadDao fileUploadDao;
|
||||
@Autowired
|
||||
private EmpUserDao empUserDao;
|
||||
@@ -52,32 +50,41 @@ public class DaoMapperTest extends BaseSpringContextTests {
|
||||
try{
|
||||
|
||||
System.out.println("============ 插入测试 ============");
|
||||
Config config = new Config();
|
||||
config.setId("1");
|
||||
config.setConfigKey("test");
|
||||
config.setConfigName("test");
|
||||
config.setConfigValue("1");
|
||||
config.setIsSys("1");
|
||||
long configInsertNum = configDao.insert(config);
|
||||
Assert.assertEquals("configDao.insert", configInsertNum , 1);
|
||||
Config configInsertRes = configDao.get(config);
|
||||
Assert.assertEquals("configDao.insert result", configInsertRes.getId() , "1");
|
||||
Post post1 = new Post();
|
||||
post1.setId("1");
|
||||
post1.setPostName("test");
|
||||
post1.setPostType("1");
|
||||
post1.setPostSort(1);
|
||||
long postInsertNum = postDao.insert(post1);
|
||||
Assert.assertEquals("postDao.insert", postInsertNum , 1);
|
||||
Post postInsertRes = postDao.get(post1);
|
||||
Assert.assertEquals("postDao.insert result", postInsertRes.getId() , "1");
|
||||
|
||||
System.out.println("============ 批量插入测试 ============");
|
||||
Config config2 = (Config)config.clone();
|
||||
config2.setId("2");
|
||||
config2.setConfigKey("test2");
|
||||
Config config3 = (Config)config.clone();
|
||||
config3.setId("3");
|
||||
config3.setConfigKey("test3");
|
||||
long configinsertBatchNum = configDao.insertBatch(ListUtils.newArrayList(config2, config3));
|
||||
Assert.assertEquals("configDao.insertBatch", configinsertBatchNum , 2);
|
||||
Config configInsertBatchRes2 = configDao.get(config2);
|
||||
Assert.assertEquals("configDao.insertBatch result", configInsertBatchRes2.getId() , "2");
|
||||
Config configInsertBatchRes3 = configDao.get(config3);
|
||||
Assert.assertEquals("configDao.insertBatch result", configInsertBatchRes3.getId() , "3");
|
||||
Post post2 = (Post)post1.clone();
|
||||
post2.setId("2");
|
||||
post2.setPostName("test2");
|
||||
Post post3 = (Post)post1.clone();
|
||||
post3.setId("3");
|
||||
post3.setPostName("test3");
|
||||
long postInsertBatchNum = postDao.insertBatch(ListUtils.newArrayList(post2, post3));
|
||||
Assert.assertEquals("postDao.insertBatch", postInsertBatchNum , 2);
|
||||
Post postInsertBatchRes2 = postDao.get(post2);
|
||||
Assert.assertEquals("postDao.insertBatch result", postInsertBatchRes2.getId() , "2");
|
||||
Post postInsertBatchRes3 = postDao.get(post3);
|
||||
Assert.assertEquals("postDao.insertBatch result", postInsertBatchRes3.getId() , "3");
|
||||
|
||||
System.out.println("============ 按主键更新测试 ============");
|
||||
Post post4 = new Post("2");
|
||||
post4.setPostName("test4");
|
||||
long postUpdateNum = postDao.update(post4);
|
||||
Assert.assertEquals("postDao.update", postUpdateNum , 1);
|
||||
|
||||
System.out.println("============ 按主键删除测试 ============");
|
||||
long postDeleteNum = postDao.phyDelete(post4);
|
||||
Assert.assertEquals("postDao.delete", postDeleteNum , 1);
|
||||
|
||||
System.out.println("============ 按树表更新测试 ============");
|
||||
Area area = new Area();
|
||||
area.setAreaCode("1");
|
||||
area.setAreaName("你好");
|
||||
@@ -105,7 +112,7 @@ public class DaoMapperTest extends BaseSpringContextTests {
|
||||
Area areaUpdateRes = areaDao.get(area);
|
||||
Assert.assertEquals("areaDao.update result", areaUpdateRes.getAreaName() , "你好2");
|
||||
|
||||
System.out.println("============ 按主键批量更新测试 ============");
|
||||
System.out.println("============ 按树表批量更新测试 ============");
|
||||
long areaUpdateBatchNum = areaDao.updateBatch(ListUtils.newArrayList(area2, area3));
|
||||
Assert.assertEquals("areaDao.update", areaUpdateBatchNum , 2);
|
||||
|
||||
@@ -120,9 +127,9 @@ public class DaoMapperTest extends BaseSpringContextTests {
|
||||
|
||||
System.out.println("============ 更新数据状态测试 ============");
|
||||
long areaStatusNum = areaDao.updateStatus(area);
|
||||
Assert.assertEquals("areaDao.updateStatus", areaUpdateByEntityNum , 1);
|
||||
Assert.assertEquals("areaDao.updateStatus", areaStatusNum , 1);
|
||||
long areaStatusByEntityNum = areaDao.updateStatusByEntity(area, where);
|
||||
Assert.assertEquals("areaDao.updateStatusByEntity", areaUpdateByEntityNum , 1);
|
||||
Assert.assertEquals("areaDao.updateStatusByEntity", areaStatusByEntityNum , 1);
|
||||
|
||||
System.out.println("============ 逻辑删除测试 ============");
|
||||
long areaDeleteNum = areaDao.delete(area);
|
||||
@@ -209,13 +216,16 @@ public class DaoMapperTest extends BaseSpringContextTests {
|
||||
Assert.assertEquals("fileUploadDao.findList attrName this", fileUploadList.size(), 0);
|
||||
|
||||
System.out.println("============ 树结构基本查询测试 ============");
|
||||
DictData dictData = new DictData();
|
||||
dictData.setParentCodes("0,");
|
||||
List<DictData> dictDataList = dictDataDao.findByParentCodesLike(dictData);
|
||||
Assert.assertTrue("dictDataDao.findByParentCodesLike", dictDataList.size() > 0);
|
||||
List<DictData> dictDataList2 = dictDataDao.findList(dictData);
|
||||
System.out.println(dictDataList2);
|
||||
Assert.assertTrue("dictDataDao.findList", dictDataList2.size() > 0);
|
||||
Area area6 = new Area();
|
||||
area6.setParentCodes("0,370000,%");
|
||||
List<Area> area6List = areaDao.findByParentCodesLike(area6);
|
||||
System.out.println(area6List);
|
||||
Assert.assertTrue("areaDao.findByParentCodesLike", !area6List.isEmpty());
|
||||
Area area7 = new Area();
|
||||
area7.setParentCodes_rightLike("0,370000,");
|
||||
List<Area> area7List2 = areaDao.findList(area7);
|
||||
System.out.println(area7List2);
|
||||
Assert.assertTrue("areaDao.findByParentCodesRightLike", area6List.size() == area7List2.size());
|
||||
|
||||
System.out.println("============ 分页情况下foreach测试 ============");
|
||||
EmpUser empUser = new EmpUser();
|
||||
@@ -223,7 +233,11 @@ public class DaoMapperTest extends BaseSpringContextTests {
|
||||
empUser.setPage(new Page<>(1, 3));
|
||||
List<EmpUser> empUserList = empUserDao.findUserListByOfficeCodes(empUser);
|
||||
System.out.println(empUserList);
|
||||
Assert.assertTrue("empUserDao.findUserListByOfficeCodes", empUserList.size() > 0);
|
||||
Assert.assertTrue("empUserDao.findUserListByOfficeCodes", !empUserList.isEmpty());
|
||||
|
||||
System.out.println("\n===========================================\n");
|
||||
|
||||
main(null);
|
||||
|
||||
}catch(Exception e){
|
||||
e.printStackTrace();
|
||||
@@ -233,94 +247,135 @@ public class DaoMapperTest extends BaseSpringContextTests {
|
||||
|
||||
public static void main(String[] args) {
|
||||
String a = null, b = null;
|
||||
System.out.println("============ 基本测试 ============");
|
||||
a = new Config("1").sqlMap()
|
||||
System.out.println("============ 插入测试 ============");
|
||||
Post insertPost = new Post("1");
|
||||
insertPost.setPostName("这是岗位名称");
|
||||
insertPost.currentUser(new User("system"));
|
||||
a = insertPost.sqlMap().getInsert().toTableSql();
|
||||
a += insertPost.sqlMap().getInsert().toColumnSql();
|
||||
a += insertPost.sqlMap().getInsert().toValuesSql();
|
||||
b = "`js_sys_post``status`, `create_by`, `create_date`, `update_by`, `update_date`, `post_code`, `post_name`" +
|
||||
"#{status}, #{createBy}, #{createDate}, #{updateBy}, #{updateDate}, #{postCode}, #{postName}";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
System.out.println("============ 更新测试 ============");
|
||||
Post updatePost = new Post("1");
|
||||
updatePost.setPostName("这是岗位名称");
|
||||
updatePost.currentUser(new User("system"));
|
||||
a = updatePost.sqlMap().getUpdate().toTableSql();
|
||||
a += updatePost.sqlMap().getUpdate().toColumnSql();
|
||||
a += updatePost.sqlMap().getUpdate().toWhereSql();
|
||||
b = "`js_sys_post``update_by` = #{updateBy}, `update_date` = #{updateDate}, `post_name` = #{postName}" +
|
||||
"`post_code` = #{postCode}";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
System.out.println("============ 查询测试 ============");
|
||||
a = new Post("1").sqlMap()
|
||||
.getWhere().and("name", QueryType.EQ, "abc").toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1} AND a.name = #{sqlMap.where.name#EQ1.val}";
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1}" +
|
||||
" AND a.name = #{sqlMap.where.name#EQ1.val}";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
a = new Config("1").sqlMap().getWhere()
|
||||
a = new Post("1").sqlMap().getWhere()
|
||||
.and("name", QueryType.IN, new String[]{"1", "2", "3"}).toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1} AND a.name IN ( #{sqlMap.where.name#IN1.val[0]},"
|
||||
+ " #{sqlMap.where.name#IN1.val[1]}, #{sqlMap.where.name#IN1.val[2]} )";
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1}" +
|
||||
" AND a.name IN ( #{sqlMap.where.name#IN1.val[0]}, #{sqlMap.where.name#IN1.val[1]}," +
|
||||
" #{sqlMap.where.name#IN1.val[2]} )";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
a = new Config("1").sqlMap().getWhere()
|
||||
a = new Post("1").sqlMap().getWhere()
|
||||
.or("name", QueryType.IN, new String[]{"1", "2", "3"}).toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1} OR a.name IN ( #{sqlMap.where.name#IN1.val[0]},"
|
||||
+ " #{sqlMap.where.name#IN1.val[1]}, #{sqlMap.where.name#IN1.val[2]} )";
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1}" +
|
||||
" OR a.name IN ( #{sqlMap.where.name#IN1.val[0]}, #{sqlMap.where.name#IN1.val[1]}," +
|
||||
" #{sqlMap.where.name#IN1.val[2]} )";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
System.out.println("============ 重复赋值测试 ============");
|
||||
a = new Config("1").sqlMap().getWhere()
|
||||
.and("name", QueryType.LIKE, "abc").and("name", QueryType.LIKE, "def").toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1} AND a.name LIKE #{sqlMap.where.name#LIKE1.val}";
|
||||
a = new Post("1").sqlMap().getWhere()
|
||||
.and("name", QueryType.LIKE, "abc")
|
||||
.and("name", QueryType.LIKE, "def").toSql();
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1}" +
|
||||
" AND a.name LIKE #{sqlMap.where.name#LIKE1.val}";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
System.out.println("============ IN、NOT IN 测试 ============");
|
||||
a = new Config("1").sqlMap().getWhere()
|
||||
a = new Post("1").sqlMap().getWhere()
|
||||
.and("name", QueryType.IN, new String[]{"abc","def"})
|
||||
.and("name2", QueryType.NOT_IN, ListUtils.newArrayList("abc","def")).toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1} AND a.name IN ( #{sqlMap.where.name#IN1.val[0]}, #{sqlMap.where.name#IN1.val[1]} )"
|
||||
+ " AND a.name2 NOT IN ( #{sqlMap.where.name2#NOT_IN1.val[0]}, #{sqlMap.where.name2#NOT_IN1.val[1]} )";
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1}" +
|
||||
" AND a.name IN ( #{sqlMap.where.name#IN1.val[0]}, #{sqlMap.where.name#IN1.val[1]} )" +
|
||||
" AND a.name2 NOT IN ( #{sqlMap.where.name2#NOT_IN1.val[0]}, #{sqlMap.where.name2#NOT_IN1.val[1]} )";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
a = new Config("1").sqlMap().getWhere()
|
||||
.and("name", QueryType.IN, null).and("name2", QueryType.IN, new String[]{})
|
||||
a = new Post("1").sqlMap().getWhere()
|
||||
.and("name", QueryType.IN, null)
|
||||
.and("name2", QueryType.IN, new String[]{})
|
||||
.and("name3", QueryType.NOT_IN, ListUtils.newArrayList()).toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1}";
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1}";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
System.out.println("============ 带括号测试 ============");
|
||||
a = new Config("1").sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "abc", 1).or("name", QueryType.EQ, "def", 2)
|
||||
a = new Post("1").sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "abc", 1)
|
||||
.or("name", QueryType.EQ, "def", 2)
|
||||
.or("name", QueryType.EQ, "ghi", 3).endBracket().toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1} AND ( a.name = #{sqlMap.where.name#EQ1.val}"
|
||||
+ " OR a.name = #{sqlMap.where.name#EQ2.val} OR a.name = #{sqlMap.where.name#EQ3.val} )";
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1}" +
|
||||
" AND ( a.name = #{sqlMap.where.name#EQ1.val} OR a.name = #{sqlMap.where.name#EQ2.val}" +
|
||||
" OR a.name = #{sqlMap.where.name#EQ3.val} )";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
a = new Config().sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "val1", 1).and("name", QueryType.NE, "val2", 11).endBracket(1)
|
||||
.orBracket("name", QueryType.NE, "val3", 2).and("name", QueryType.NE, "val4", 22).endBracket(2)
|
||||
.orBracket("name", QueryType.NE, "val5", 3).and("name", QueryType.EQ, "val6", 33).endBracket(3)
|
||||
a = new Post().sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "val1", 1)
|
||||
.and("name", QueryType.NE, "val2", 11).endBracket(1)
|
||||
.orBracket("name", QueryType.NE, "val3", 2)
|
||||
.and("name", QueryType.NE, "val4", 22).endBracket(2)
|
||||
.orBracket("name", QueryType.NE, "val5", 3)
|
||||
.and("name", QueryType.EQ, "val6", 33).endBracket(3)
|
||||
.toSql();
|
||||
b = "( a.name = #{sqlMap.where.name#EQ1.val} AND a.name != #{sqlMap.where.name#NE11.val} )"
|
||||
+ " OR ( a.name != #{sqlMap.where.name#NE2.val} AND a.name != #{sqlMap.where.name#NE22.val} )"
|
||||
+ " OR ( a.name != #{sqlMap.where.name#NE3.val} AND a.name = #{sqlMap.where.name#EQ33.val} )";
|
||||
b = "a.`status` != #{STATUS_DELETE}" +
|
||||
" AND ( a.name = #{sqlMap.where.name#EQ1.val} AND a.name != #{sqlMap.where.name#NE11.val} )" +
|
||||
" OR ( a.name != #{sqlMap.where.name#NE2.val} AND a.name != #{sqlMap.where.name#NE22.val} )" +
|
||||
" OR ( a.name != #{sqlMap.where.name#NE3.val} AND a.name = #{sqlMap.where.name#EQ33.val} )";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
System.out.println("============ 带括号部分空值测试 ============");
|
||||
a = new Config("1").sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "", 1).or("name", QueryType.EQ, "def", 2)
|
||||
.or("name", QueryType.EQ, "", 3).endBracket().toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1} AND ( a.name = #{sqlMap.where.name#EQ2.val} )";
|
||||
a = new Post("1").sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "", 1)
|
||||
.or("name", QueryType.EQ, "def", 2)
|
||||
.or("name", QueryType.EQ, "", 3).endBracket().toSql();
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1}" +
|
||||
" AND ( a.name = #{sqlMap.where.name#EQ2.val} )";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
a = new Config("1").sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "abc", 1).or("name", QueryType.EQ, "def", 2)
|
||||
.or("name", QueryType.EQ, "", 3).endBracket().toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1} AND ( a.name = #{sqlMap.where.name#EQ1.val}"
|
||||
+ " OR a.name = #{sqlMap.where.name#EQ2.val} )";
|
||||
a = new Post("1").sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "abc", 1)
|
||||
.or("name", QueryType.EQ, "def", 2)
|
||||
.or("name", QueryType.EQ, "", 3).endBracket().toSql();
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1}" +
|
||||
" AND ( a.name = #{sqlMap.where.name#EQ1.val} OR a.name = #{sqlMap.where.name#EQ2.val} )";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
a = new Config("1").sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "", 1).or("name", QueryType.EQ, "def", 2)
|
||||
.or("name", QueryType.EQ, "ghi", 3).endBracket().toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1} AND ( a.name = #{sqlMap.where.name#EQ2.val}"
|
||||
+ " OR a.name = #{sqlMap.where.name#EQ3.val} )";
|
||||
a = new Post("1").sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "", 1)
|
||||
.or("name", QueryType.EQ, "def", 2)
|
||||
.or("name", QueryType.EQ, "ghi", 3).endBracket().toSql();
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1}" +
|
||||
" AND ( a.name = #{sqlMap.where.name#EQ2.val} OR a.name = #{sqlMap.where.name#EQ3.val} )";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
System.out.println("============ 带括号全部空值测试 ============");
|
||||
a = new Config("1").sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "", 1).or("name", QueryType.EQ, "", 2)
|
||||
.or("name", QueryType.EQ, "", 3).endBracket().toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1} ";
|
||||
a = new Post("1").sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "", 1)
|
||||
.or("name", QueryType.EQ, "", 2)
|
||||
.or("name", QueryType.EQ, "", 3).endBracket().toSql();
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1} ";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
a = new Config().sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "", 1).or("name", QueryType.EQ, "", 2)
|
||||
.or("name", QueryType.EQ, "", 3).endBracket().toSql();
|
||||
b = "";
|
||||
a = new Post().sqlMap().getWhere()
|
||||
.andBracket("name", QueryType.EQ, "", 1)
|
||||
.or("name", QueryType.EQ, "", 2)
|
||||
.or("name", QueryType.EQ, "", 3).endBracket().toSql();
|
||||
b = "a.`status` != #{STATUS_DELETE} ";
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
System.out.println("============ 实体嵌套测试 ============");
|
||||
@@ -365,7 +420,7 @@ public class DaoMapperTest extends BaseSpringContextTests {
|
||||
System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b);
|
||||
|
||||
System.out.println("============ 条件嵌套查询,可替代 andBracket、orBracket、endBracket v5.2.1+ ============");
|
||||
a = new Config("1").sqlMap().getWhere()
|
||||
a = new Post("1").sqlMap().getWhere()
|
||||
.and("name", QueryType.EQ, "abc", 1)
|
||||
.and((w) -> w
|
||||
.or("name", QueryType.EQ, "def", 2)
|
||||
@@ -379,7 +434,7 @@ public class DaoMapperTest extends BaseSpringContextTests {
|
||||
.and("name", QueryType.EQ, "def", 7)
|
||||
.and("name", QueryType.EQ, "ghi", 8)))
|
||||
.toSql();
|
||||
b = "a.`id` = #{sqlMap.where#id#EQ1} AND a.name = #{sqlMap.where.name#EQ1.val}" +
|
||||
b = "a.`status` != #{STATUS_DELETE} AND a.`post_code` = #{sqlMap.where#post_code#EQ1} AND a.name = #{sqlMap.where.name#EQ1.val}" +
|
||||
" AND (a.name = #{sqlMap.where.n#[0].name#EQ2.val} OR a.name = #{sqlMap.where.n#[0].name#EQ3.val})" +
|
||||
" AND ((a.name = #{sqlMap.where.n#[1].n#[0].name#EQ4.val} AND a.name = #{sqlMap.where.n#[1].n#[0].name#EQ_FORCE6.val})" +
|
||||
" OR (a.name = #{sqlMap.where.n#[1].n#[1].name#EQ7.val} AND a.name = #{sqlMap.where.n#[1].n#[1].name#EQ8.val}))";
|
||||
|
||||
Reference in New Issue
Block a user