读书人

基于HIBERNATE的全自动查询框架(1)

发布时间: 2012-11-07 09:56:10 作者: rapoo

基于HIBERNATE的全自动查询框架(一)
本文讨论如何实现只要几行代码或者甚至可以没有JAVA代码的查询,全自动的意思是查询条件的封装不需要你写一行代码

----后记,这四篇文章是讲如何实现的过程,如果读者只想知道如何使用,请到我的另一篇博客(含最新版本JAR包及源代码下载)http://lgdlgd.iteye.com/admin/blogs/619370


此框架一共分了四篇文章。

先来看看效果吧,下面是JSP的页面条件,实际JSP的代码也是几个普通的INPUT



下面是ACTION的代码(我用的STRUTS2)

public String findTasks() {taskService.findTasks(getTaskBean());return SUCCESS;}


再下来就是SERVICE的业务代码

public void findTasks(TaskBean taskBean) {//仅此一行taskDAO.findByAutoCondition(taskBean.getPagin(), Task.class, "taskBean.task", COLUMN_NAMES,null,null,"_task");}/*taskBean.getPagin()得到的就是分页对象,是Struts通过浏览器传回参数自动创建的,Task.class是我的POJO类,"taskBean.task"是我的FormBean和pojo在Action中的名字,pojo定义在FormBean里面,COLUMN_NAMES是我在Service中定义的一个字符串数组常量,是POJO的部份属性名,结果集列表只展示这些属性,所以查询也只查这些属性,接下来两个参数可空,是预留给用户的额外查询条件(JSP中没有的(外加),或JSP中有,但查询时不想的(排除)),最后那个参数是别名,可随意起*/


结果集列表,注意这里的两个时间是个范围值,对应到列表的“计划开始时间”列,而并非每个时间对应一列




通过这几行代码,一个查询列表(含分页)就出来了,对于查询条件的封装是全自动的,不需要你费一点力气。
其实还可以把框架写成JSP标签,只把上面这一行代码的参数作为标签的属性,那么完全可以不要ACTION和SERVICE里面的代码了,但这和我权限系统有些冲突,就不这样做了。


1 楼 woainan6042 2009-12-14 时间的那还不如加上个控件得了 2 楼 recoco 2010-01-11 好东西,实现很强大。非常感谢楼主。以前我只是简单用for loop 来做这些事情。学习。 3 楼 woailyqgi 2012-07-17 给我一份代码啊,谢谢!
下载的时候没权限啊!
我的邮箱地址woailyqgi@163.com
谢谢

读书人网 >软件架构设计

热点推荐