Spring Hibernate 复杂查询分页Word文件下载.docx
- 文档编号:16657820
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:7
- 大小:15.93KB
Spring Hibernate 复杂查询分页Word文件下载.docx
《Spring Hibernate 复杂查询分页Word文件下载.docx》由会员分享,可在线阅读,更多相关《Spring Hibernate 复杂查询分页Word文件下载.docx(7页珍藏版)》请在冰豆网上搜索。
returnpageAble;
}publicvoidsetPageAble(booleanpageAble){
this.pageAble=pageAble;
}publicintgetTotalObjects(){
returntotalObjects;
}publicvoidsetTotalObjects(intparam){
this.totalObjects=param;
}publicintgetTotalPages(){
returntotalPages;
}publicvoidsetTotalPages(intparam){
this.totalPages=param;
}publicintgetPageNumber(){
returnpageNumber;
}publicvoidsetPageNumber(intpageNumber){
this.pageNumber=pageNumber;
}publicintgetPageSize(){
returnpageSize;
}publicvoidsetPageSize(intpageSize){
this.pageSize=pageSize;
publicStringtoString(){
return("
\ntotalPages:
"
+totalPages+
"
\ntotalObjects:
+totalObjects+
\npageNumber:
+pageNumber+
\npageSize:
+pageSize+
\npageAble:
+pageAble+
\nfirstResult:
+firstResult);
}publicintgetFirstResult(){
returnfirstResult;
}publicvoidsetFirstResult(intfirstResult){
this.firstResult=firstResult;
}/*UserDao接口*/packagecom.xing.cms.model.dao;
importjava.util.List;
importcom.xing.cms.model.businessobject.User;
importcom.xing.cms.model.util.Pager;
publicinterfaceUserDao{
publicabstractbooleansave(Usermodel);
publicabstractbooleanupdate(Usermodel);
publicabstractUserget(intid);
publicabstractbooleandelete(intid);
publicabstractvoidtruncate();
publicabstractbooleandelete(int[]id);
publicabstractList&
lt;
User&
gt;
find(String[][]searchPara,Pagerpager);
find(String[][]searchPara);
}/*UserDao实现*/packagecom.xing.cms.model.dao.impl;
importjava.sql.SQLException;
importorg.hibernate.Criteria;
importorg.hibernate.Hibernate;
importorg.hibernate.HibernateException;
importorg.hibernate.Query;
importorg.hibernate.Session;
//importorg.hibernate.criterion.Expression;
importorg.hibernate.criterion.Restrictions;
importorg.hibernate.criterion.MatchMode;
importorg.hibernate.criterion.Order;
importorg.hibernate.criterion.Projections;
importorg.springframework.jdbc.core.JdbcTemplate;
importorg.springframework.orm.hibernate3.HibernateCallback;
importorg.springframework.orm.hibernate3.support.HibernateDaoSupport;
importcom.xing.cms.model.dao.UserDao;
importcom.xing.cms.model.util.GeneralTool;
publicclassUserDaoImplextendsHibernateDaoSupportimplementsUserDao{privateJdbcTemplatejdbcTemplate;
//SpringInjectionpublicUserDaoImpl(){
super();
}publicJdbcTemplategetJdbcTemplate(){
returnjdbcTemplate;
}publicvoidsetJdbcTemplate(JdbcTemplateparam){
this.jdbcTemplate=param;
}@SuppressWarnings("
unchecked"
)
publicList&
find(finalString[][]searchPara,finalPagerpager){return(List&
)this.getHibernateTemplate().execute(
newHibernateCallback(){
publicObjectdoInHibernate(Sessionsession)
throwsSQLException,HibernateException{
Criteriaca_count=null;
if(pager.isPageAble())
ca_count=session.createCriteria(User.class);
//不能避免,需要查询两次数据库,这个获取总数
Criteriaca=session.createCriteria(User.class);
if(searchPara!
=null){
ca.setProjection(null);
for(inti=0;
i&
searchPara.length;
i++){if(searchPara[i][1].equalsIgnoreCase("
="
)){
ca_count.add(Restrictions.eq(searchPara[i][0],searchPara[i][2]));
ca.add(Restrictions.eq(searchPara[i][0],searchPara[i][2]));
}elseif(searchPara[i][1].equalsIgnoreCase("
like"
)){
ca_count.add(Restrictions.like(searchPara[i][0],searchPara[i][2],MatchMode.ANYWHERE));
ca.add(Restrictions.like(searchPara[i][0],searchPara[i][2],MatchMode.ANYWHERE));
}}
Listret_list;
if(pager.isPageAble()){pager.setTotalObjects(((Integer)(ca_count
.setProjection(Projections.rowCount())
.uniqueResult())).intValue());
//获取Count
pager.calc();
ca.addOrder(Order.desc("
UID"
));
ca.setFirstResult(pager.getFirstResult());
ca.setMaxResults(pager.getPageSize());
ret_list=ca.list();
}else{
}returnret_list;
});
}//......其它方法略去/*测试类*/packagetest;
importmons.logging.Log;
importmons.logging.LogFactory;
importorg.springframework.test.AbstractTransactionalDataSourceSpringContextTests;
importcom.xing.cms.model.dao.DocumentDao;
importcom.xing.cms.model.util.HtmlGenerator;
importcom.xing.cms.model.util.UtilXml;
importcom.xing.cms.action.UserAction;
publicclassTestSpringextendsAbstractTransactionalDataSourceSpringContextTests
{
privateLoglogger=LogFactory.getLog(TestSpring.class);
publicString[]getConfigLocations(){
String[]config=newString[]{"
applicationContext.xml"
};
returnconfig;
}publicvoidtestUserAction()throwsException{
UserDaodao=(UserDao)applicationContext.getBean("
userDao"
);
assertTrue(dao!
=null);
Useruser=(User)applicationContext.getBean("
user"
assertTrue(user!
Pagerpager=(Pager)applicationContext.getBean("
pager"
assertTrue(pager!
UserActionaction=(UserAction)applicationContext.getBean("
userAction"
assertTrue(action!
//clearallfirst
dao.truncate();
//super.setComplete();
//add
for(inti=0;
i&
20;
i++)
{
Useru=newUser();
u.setGID
(1);
u.setUsername("
xzw_"
+i);
u.setPassword("
abcd"
dao.save(u);
//nopager
/*
assertEquals(0,dao.find(
newString[][]{
newString[]{"
username"
"
xzw"
}
).size());
assertEquals(20,dao.find(null).size());
*/
//withpager
//action.getPager().setPageSize(9);
//101112...19+1=11
/*分页,取第一页,前4条,应该返回4*/
action.getPager().setPageSize(4);
assertEquals(4,dao.find(newString[][]{
xzw_1"
},action.getPager()).size());
/*不分页,则取全部的,应该返回20*/
action.getPager().setPageAble(false);
assertEquals(11,dao.find(newString[][]{
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Spring Hibernate 复杂查询分页 复杂 查询 分页