项目心得-如何设计查询
?
大家知道,基本上大部分的业务系统或产品的业务逻辑实现,都可以总结为数据库的CRUD和查询。对于数据库的CRUD操作,这些都在webber.core.frame.db中有体现,这里就不再赘述。下面我想说一下对于数据库查询的设计思路。UserManager.find(){ return userDao.find();}这样不就行了UserManager.find(){ return userDao.find();}这样不就行了
manager为何要搞成类似dao的哟?usermanager.find(Map pam){ pageList list = new pageList(); list.setList( userDao.find(pam)); list.setPageMax(userDao.count(pam)); return list; }Title title = new Title( request,”formName”,total,rowOfPage ); 第一个参数大家都知道,request第二个是页面表单的名称,和BaseList.setFormName()一样的 total是指Title显示的数据总量是多少 rowOfPage是指每页显示多少条,会根据total来计算当前页面和页面数量。需要显示的时候,可以使用Title的方法:Title.show( out,””,”” );既可 out:javax.servlet.jsp.JspWriter 就是jsp页面中的out 后两个参数是显示翻页时按钮的样式和文字的样式要获取当前页面的记录开始编号和记录数量可以使用Title.getStart()Title.getOffset(),获取每页的记录条数
这里的Title应该是分页类吧,在这个类里侵入web层的东西(request)不应该
分页类可以做成一个独立的类 不依赖任何的第三方api,另外做一个类来使用分页类 这样分页类更具有通用性
10 楼 SunMicro 2007-05-24 为什么不通过一个存储过程来分页?
需要灵活的sql查询,完全可以通过spring来注入一条查询语句。
而且个人认为,如果在jsp中显示列表,没有必要将字段先封装为对象然后再提取,这样若数据太多,那岂不是有太多的对象驻留在内存中,何不直接返回一个CacheRowSet,然后转化为Result让JSTL直接使用 11 楼 java_super 2007-05-25 拼sql语句还是用StringBuffer 12 楼 sg552 2007-05-27 楼主还是多学习学习吧。
这思路太落后了。 这代码也没法看。
javaeye的好文章越来越少啊! 13 楼 fireflyc 2007-05-27 好乱啊。
全面耦合在一起了…… 14 楼 garyt 2007-05-27 我现在也是通过SELECT COUNT(1)的方式来得到需要查询的结果集的记录总数,但待查询的表中,数据量非常大,比如1百万条记录,效率就会有问题
请问有没有好点的方法介绍给我啊,谢谢!