📄 commondao.java
字号:
package com.accphr.dao.impl;
import java.io.Serializable;
import java.util.List;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.accphr.dao.ICommonDao;
import com.accphr.page.PageResult;
/**
* 共用数据库访问类
* @author zhuohai
*
*/
public class CommonDao extends HibernateDaoSupport implements ICommonDao {
//增加
/* (non-Javadoc)
* @see com.accphr.dao.ICommonDao#add(java.lang.Object)
*/
public void add(Object obj){
this.getHibernateTemplate().save(obj);
}
//删除
/* (non-Javadoc)
* @see com.accphr.dao.ICommonDao#del(java.lang.Class, java.io.Serializable)
*/
public void del(Class cl,Serializable id){
Object obj=this.getHibernateTemplate().get(cl, id);
this.getHibernateTemplate().delete(obj);
}
//更新
/* (non-Javadoc)
* @see com.accphr.dao.ICommonDao#update(java.lang.Object)
*/
public void update(Object obj){
this.getHibernateTemplate().update(obj);
}
//根据ID查询
/* (non-Javadoc)
* @see com.accphr.dao.ICommonDao#findById(java.lang.Class, java.io.Serializable)
*/
public Object findById(Class cl,Serializable id){
return this.getHibernateTemplate().get(cl, id);
}
//根据Hql查询
/* (non-Javadoc)
* @see com.accphr.dao.ICommonDao#findByHql(java.lang.String)
*/
public List findByHql(String hql){
return this.getHibernateTemplate().find(hql);
}
//有参hql查询
/* (non-Javadoc)
* @see com.accphr.dao.ICommonDao#findByHql(java.lang.String, java.lang.Object[])
*/
public List findByHql(String hql,Object[] params){
return this.getHibernateTemplate().find(hql,params);
}
//设置分页对象
/* (non-Javadoc)
* @see com.accphr.dao.ICommonDao#findByHql(java.lang.String, java.lang.Object[])
*/
public void pageList(PageResult pageResult) {
Session session=this.getSession();
//获取总记录数
String hql=pageResult.getHql();
if(hql.toLowerCase().indexOf("select")!=-1){
int index=hql.indexOf("from");
hql=hql.substring(index);
}
if(hql.toLowerCase().indexOf("order by")!=-1){
int index=hql.indexOf("order by");
hql=hql.substring(0,index);
}
if(hql.toLowerCase().indexOf("left join")!=-1){
int index=hql.indexOf("where");
int index2=hql.indexOf("left join");
hql=hql.substring(0,index2)+hql.substring(index);
}
hql="select count(*) "+hql;
Query query=session.createQuery(hql);
Long count=(Long)query.uniqueResult();
pageResult.setTotalSize(count.intValue());
//取总页数
pageResult.getTotalPage();
//取区间数据
Query qu=session.createQuery(pageResult.getHql());
if(pageResult.getCurrent()>pageResult.getTotalPage()){
pageResult.setCurrent(pageResult.getTotalPage());
}
int starts=(pageResult.getCurrent()-1)*pageResult.getPageSize();
int ends=pageResult.getPageSize();
qu.setFirstResult(starts);
qu.setMaxResults(ends);
pageResult.setList(qu.list());
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -