From 8689fd1cd65c41ef9aac78662ef83d235b83dcfd Mon Sep 17 00:00:00 2001 From: thinkgem Date: Thu, 14 May 2020 17:36:39 +0800 Subject: [PATCH] =?UTF-8?q?=E7=82=B9=E5=87=BB=E5=8F=B3=E4=B8=8A=E8=A7=92?= =?UTF-8?q?=E3=80=90Star=E3=80=91=E6=94=B6=E8=97=8F=E6=9C=AC=E8=BD=AF?= =?UTF-8?q?=E4=BB=B6=20^=5F^?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 +-- .../java/com/jeesite/test/DaoMapperTest.java | 46 +++++++++++-------- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/README.md b/README.md index c5339eb4..c36c009a 100644 --- a/README.md +++ b/README.md @@ -71,12 +71,12 @@ JeeSite 4.x 的升级,作者结合了多年总结和经验,以及各方面 ## 技术服务与支持 * 没有资金的支撑就很难得到发展,特别是一个好的产品,如果 JeeSite 帮助了您,请为我们点赞。支持我们,您可以得到一些回报,有了这些我们会把公益事业做的更好,回报社区和社会,请给我们一些动力吧,在此非常感谢已支持我们的朋友! -* **联系方式(官方商务)QQ:[1766571055](http://sighttp.qq.com/msgrd?v=1&uin=1766571055)** +* **联系方式(官方商务)QQ:[1766571055](http://wpa.qq.com/msgrd?v=3&uin=1766571055&site=qq&menu=yes)** * 技术服务支持网页: # 技术交流方式 -* QQ 群号:`127515876`、`209330483`、`223507718`、`709534275`、`730390092`、`183903863(外包)` +* QQ 群号:`127515876`、`209330483`、`223507718`、`709534275`、`730390092`、`1373527`、`183903863(外包)` * 问题反馈:  [【新手必读】](https://github.com/ryanhanwu/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md) * 码云Gitee: * GitHub: @@ -84,7 +84,7 @@ JeeSite 4.x 的升级,作者结合了多年总结和经验,以及各方面 * **技术服务:** * 官方网站: * 官方论坛: -* 微信公众号: +* 微信公众号(关注动态): ![JeeSite4微信公众号](https://static.oschina.net/uploads/space/2018/0302/145133_OGZf_941661.jpg "JeeSite4微信公众号") diff --git a/modules/core/src/test/java/com/jeesite/test/DaoMapperTest.java b/modules/core/src/test/java/com/jeesite/test/DaoMapperTest.java index ea5bdea0..d8ffaf67 100644 --- a/modules/core/src/test/java/com/jeesite/test/DaoMapperTest.java +++ b/modules/core/src/test/java/com/jeesite/test/DaoMapperTest.java @@ -137,12 +137,12 @@ public class DaoMapperTest extends BaseSpringContextTests { Company company2 = new Company(); company2.getSqlMap().getWhere().disableAutoAddStatusWhere(); company2.getSqlMap().getDataScope().addFilter("dsf", - "Company", "a.company_code", DataScope.CTRL_PERMI_HAVE); + "Company", "a.`company_code`", DataScope.CTRL_PERMI_HAVE); System.out.println(companyDao.findList(company2)); System.out.println("============ 联合查询未设定columns和attrName为this时测试 ============"); FileUpload fileUpload = new FileUpload(); - fileUpload.getSqlMap().getWhere().and("u.user_name", QueryType.EQ, "user1"); + fileUpload.getSqlMap().getWhere().and("u.`user_name`", QueryType.EQ, "user1"); System.out.println(fileUploadDao.findList(fileUpload)); System.out.println("============ 树结构基本查询测试 ============"); @@ -169,40 +169,46 @@ public class DaoMapperTest extends BaseSpringContextTests { System.out.println("============ 基本测试 ============"); a = new Config("1").getSqlMap() .getWhere().and("name", QueryType.EQ, "abc").toSql(); - b = "a.id = #{sqlMap.where#id#EQ1} AND a.name = #{sqlMap.where.name#EQ1.val}"; + b = "a.`id` = #{sqlMap.where#id#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").getSqlMap().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]}," + 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]} )"; + System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b); + + a = new Config("1").getSqlMap().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]} )"; System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b); System.out.println("============ 重复赋值测试 ============"); a = new Config("1").getSqlMap().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}"; + b = "a.`id` = #{sqlMap.where#id#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").getSqlMap().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]} )" + 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]} )"; System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b); a = new Config("1").getSqlMap().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.`id` = #{sqlMap.where#id#EQ1}"; System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b); System.out.println("============ 带括号测试 ============"); a = new Config("1").getSqlMap().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}" + 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} )"; System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b); @@ -220,20 +226,20 @@ public class DaoMapperTest extends BaseSpringContextTests { a = new Config("1").getSqlMap().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} )"; + b = "a.`id` = #{sqlMap.where#id#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").getSqlMap().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}" + b = "a.`id` = #{sqlMap.where#id#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").getSqlMap().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}" + b = "a.`id` = #{sqlMap.where#id#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); @@ -241,7 +247,7 @@ public class DaoMapperTest extends BaseSpringContextTests { a = new Config("1").getSqlMap().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} "; + b = "a.`id` = #{sqlMap.where#id#EQ1} "; System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b); a = new Config().getSqlMap().getWhere() @@ -260,25 +266,25 @@ public class DaoMapperTest extends BaseSpringContextTests { company.getArea().setCreateDate_lte(new Date()); company.getSqlMap().getWhere().disableAutoAddStatusWhere(); a = company.getSqlMap().getWhere().toSql(); - b = "a.company_code = #{sqlMap.where#company_code#EQ1}" - + " AND a.area_code = #{sqlMap.where#area_code#EQ1}" + b = "a.`company_code` = #{sqlMap.where#company_code#EQ1}" + + " AND a.`area_code` = #{sqlMap.where#area_code#EQ1}" + " AND a.create_date >= #{sqlMap.where.create_date#GTE1.val}" + " AND a.create_date <= #{sqlMap.where.create_date#LTE1.val}" - + " AND b.area_code = #{area.sqlMap.where#area_code#EQ1}" + + " AND b.`area_code` = #{area.sqlMap.where#area_code#EQ1}" + " AND b.create_date >= #{area.sqlMap.where.create_date#GTE1.val}" + " AND b.create_date <= #{area.sqlMap.where.create_date#LTE1.val}"; System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b); System.out.println("============ 联合查询,属性名支持指定别名 ============"); - a = new FileUpload().getSqlMap().getWhere().and("u.user_name", QueryType.EQ, "user1").toSql(); - b = "a.status != #{STATUS_DELETE} AND u.user_name = #{sqlMap.where.u#user_name#EQ1.val}"; + a = new FileUpload().getSqlMap().getWhere().and("u.`user_name`", QueryType.EQ, "user1").toSql(); + b = "a.`status` != #{STATUS_DELETE} AND u.`user_name` = #{sqlMap.where.u#_user_name_#EQ1.val}"; System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b); System.out.println("============ 联合查询,返回到当前实体测试 ============"); FileUpload fileUpload = new FileUpload(); fileUpload.getSqlMap().getWhere().and("create_by", QueryType.IN, new String[]{"user1","user2"}); a = fileUpload.getSqlMap().getWhere().toSql(); - b = "a.status != #{STATUS_DELETE} AND a.create_by IN ( #{sqlMap.where.create_by#IN1.val[0]}," + b = "a.`status` != #{STATUS_DELETE} AND a.create_by IN ( #{sqlMap.where.create_by#IN1.val[0]}," + " #{sqlMap.where.create_by#IN1.val[1]} )"; System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b); @@ -287,8 +293,8 @@ public class DaoMapperTest extends BaseSpringContextTests { fileUpload2.setCreateByName("ThinkGem/JeeSite"); fileUpload2.getSqlMap().getWhere().and("create_by", QueryType.IN, new String[]{"user1","user2"}); a = fileUpload2.getSqlMap().getWhere().toSql(); - b = "a.status != #{STATUS_DELETE} AND a.create_by IN ( #{sqlMap.where.create_by#IN1.val[0]}," - + " #{sqlMap.where.create_by#IN1.val[1]} ) AND u.user_name LIKE #{sqlMap.where#user_name#LIKE1}"; + b = "a.`status` != #{STATUS_DELETE} AND a.create_by IN ( #{sqlMap.where.create_by#IN1.val[0]}," + + " #{sqlMap.where.create_by#IN1.val[1]} ) AND u.`user_name` LIKE #{sqlMap.where#user_name#LIKE1}"; System.out.println("a >> "+a);System.out.println("b >> "+b);Assert.assertEquals(a, b); System.exit(0);