相信看完上一阶段sqlEngine概要的小伙伴已经开始摩拳擦掌了吧?
接下来,我们就要正式进入主题了!
select Condition:Part A
查询条件!
没错,查询是整个sql中复杂程度极高的一个部分,其多变性及不稳定性一直以来都在困扰着我们广大的后台同胞,当然,在Spring A.S前已经有jeesite前辈对这部分做出了一定优化,而作为后辈,根据前辈的理念,Spring A.S在操作上又做出了一定的简化,使其在使用时更加便捷易用。
*getSelTable(String tables):指定需要查询的数据源表名
注意:在查询时,必须使用getSelTable指定需要查询的表名。
多个表间用’,'隔开,如需连表,则外联表表名需要从BaseTableCfg(pdm代码生成器会自动生成相关代码,文件路径在utils目录下)获取入参的第一个值为主表表名!
示例:sel.getSelTable("A,B,C");
最后生成效果:select * from A left join B on a.id = b.id left join c on c.id = a.id
getSelById(String id):根据ID检索数据的匹配条件
注意:使用这个方法会清空其他条件!因为selById在sqlEngine中意味着唯一条件,不与其他条件共存!
最后生成效果:select * from a a WHERE 1=1 a.id = ?
getSelCols(String tables):指定获取需要查询的数据源表内全部字段
可以为空,默认为查询全部
select * from a
支持多表查询,多个表间用’,'隔开
如需连表,则外联表表名需要从BaseTableCfg中获取
示例:sel.getSelCols("A,B,C");
最后生成效果:select A.* ,B.* ,C.* from A left join B on a.id = b.id left join c on c.id = a.id
getSelCols(String tables,String cols):指定获取需要查询的数据源表内全部字段及指定自定义字段
可以为空,默认为查询全部
select * from a
支持多表查询,多个表间用’,'隔开
如需连表,则外联表表名需要从BaseTableCfg中获取
支持多字段查询,多个字段间用’,'隔开
查询字段时,其正确格式为A_B(表名_字段名)
如tables为空,cols不为空则只查询cols配置的字段信息
示例:sel.getSelCols("B,C","A_B");
最后生成效果:select A.B ,B.* ,C.* from A left join B on a.id = b.id left join c on c.id = a.id
getPage(Integer pageNo,Integer pageSize):分页
pageNo:当前查询第几页
pageSize:每页查询多少条
示例:sel.getPage(1,10);
最后生成效果:select * from A where 1=1 limit 0,10
getSort(String keys,String sortTypes):排序
keys:数据排序字段(支持多个,用’,'隔开)
sortTypes:数据排序类型(支持多个,用’,'隔开,与keys值对应)
- 0 - DESC 正常倒叙
- 1 - ASC 根据拼音首字母正序
- 2- DESC 根据拼音首字母倒序
- 3- ASC 正常ASC
示例:sel.getSort(“a”,"1");
最后生成效果:select * from A where 1=1 order by a desc
getCount():统计数据总条数
注意:使用这个方法会清空其他需要获取的展示字段
-:一般用于分页的total值返回
示例:sel.getCount();
最后生成效果:select COUNT(1) AS ALLSIZE from A where 1=1
对于更加复杂的where条件部分,我将在下一章节中为大家详解~