jueyue 发表于 2014-5-21 22:50:49

Jeecg 查询条件拼装-代码解读

许久没有闲下来了,今天不想再写代码了,说说查询条件组装的,虽然基本上是自己写的,但是能写出来不一定可以说出来
,算是为过两天的讲课做做准备吧.
    这个是基于CriteriaQuery 的,而CriteriaQuery又是基于DetachedCriteria这个大家自己看了

    写这个的时候,想了挺久,就是想找可以可以扩展的查询拼装,后来定义了这个接口            http://note.youdao.com/yws/public/resource/a3e737431a6df31bc229bfe92f252123/272A846E26E34DB997A93B3847580E68
为每种类型做不同的实现,这个可以为以后类型扩充做准备

判断类型就是依据字段的类型,然后选择类型进行调用,现在实现了

http://note.youdao.com/yws/public/resource/a3e737431a6df31bc229bfe92f252123/627B302DA1D047E8B6D19C2AEB73C08F
基本上都是基本类型了,其中最复杂是String,其次是Date,但是Date也没有实现这个接口,是因为Date,有个特殊的东西,
ps:看来接口定义的还是欠水平
接下来看看调用的代码
1.获取区间值代码,就是加了begin和end的数据源

http://note.youdao.com/yws/public/resource/a3e737431a6df31bc229bfe92f252123/8E44C05CEE7C47E08A0955AA2B1F3F65

前台,选择查询条件类型group的时候就会添加了

2.根据类型选择IHqlParse的实现类

http://note.youdao.com/yws/public/resource/a3e737431a6df31bc229bfe92f252123/C22ED03B4B4148A09E2862E0AD4DB4D3
除了 String类型有些复杂外,其他都挺简单的了

3.时间类型
时间类型有两个级别类型yyyy-MM-dd和yyyy-MM-dd hh:mm:ss
如果还有特殊格式可以使用QueryTimeFormat 在get方法上面做注解表明格式

4.对象属性处理(判断如果下一层还有数据的话,就创建一个别名,继续遍历去了)

http://note.youdao.com/yws/public/resource/a3e737431a6df31bc229bfe92f252123/9E8087E00A2D464095D08DEBAF16F905

到这里基本上就拼装完了,不知道各位看客了解的如何了

其实调用就那么常见的一句话HqlGenerateUtil.installHql(cq,entity,parameterMap)
我们还是帮大家组合了很多where **=**的

By JueYueBlog:http://blog.csdn.net/qjueyueGit:http://git.oschina.net/jueyue

页: [1]
查看完整版本: Jeecg 查询条件拼装-代码解读