Spring通用basedao(二)

2014-11-24 01:34:28 · 作者: · 浏览: 3
on {
Query query=session.createQuery(hql);
if(parms!=null){
for (int i = 0; i < parms.length; i++) {
query.setString(i, parms[i]);
}
}
return query.uniqueResult();
}
});
return o;
}
//执行批量更新(修改删除)
public int exeupdatehql(final String hql){
int row=0;
row=(Integer)getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query=session.createQuery(hql);
int row=query.executeUpdate();
return row;
}
});
return row;
}
public int exeupdatehql(final String hql,final String[] prams){
int row=0;
row=(Integer)getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query=session.createQuery(hql);
if (prams!=null) {
for (int i = 0; i < prams.length; i++) {
query.setString(i, prams[i]);
}
}
int row=query.executeUpdate();
return row;
}
});
return row;
}
/*分页方法,参数pagesize表示每页显示数据量,startpage表示数据库从指定开始数据读取到指定位置,
* 例:int startpage=(当前页数-1) * pagesize;
* 当前页数为1,pagesize为3,读取数据库0到2数据
* 当前页数为2,pagesize为3,读取数据库3到5数据
* */
public List pageList(final String hql,final int pagesize,final int startpage){
return getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query=session.createQuery(hql);
query.setFirstResult(startpage);
query.setMaxResults(pagesize);
List list=query.list();
return list;
}
});
}
public List pageList(final String hql,final int pagesize,final int startpage,final String[] parms){
return getHibernateTemplate().executeFind(new HibernateCallback(){
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query=session.createQuery(hql);
if(parms!=null){
for (int i = 0; i < parms.length; i++) {
query.setString(i, parms[i]);
}
}
query.setFirstResult(startpage);
query.setMaxResults(pagesize);
List list=query.list();
return list;
}
});
}
}
分页代码例子:
//page当前页数,pagesize显示的数据量
public List<LinkMan> pagenumber(int page, int pagesize, LinkMan linkman) {
System.out.println(page+"_"+pagesize);
List list =null;
String where=" where 1=1 ";
if(linkman!=null){
if(!"".equals(linkman.getName())){
where = where+" and l.surName||l.name like '%"+linkman.getSurName()+"%' ";
}
if(!"".equals(linkman.getCustomerName())){
where = where+" and l.CustomerName like '%"+linkman.getCustomerName()+"%' ";
}
if(!"".equals(linkman.getEmail())){
where = where+" and l.Email like '%"+linkman.getEmail()+"%' ";
}
}
String hql="from LinkMan l "+where+" order by l.linkManID desc";
int startpage=(page-1) * pagesize;
list=super.pageList(hql,pagesize,startpage);
return list;
}
//根据查询条件计数查询出来的数据条数
public int getsearchcount(LinkMan linkman) {
int count=0;
String where=" where 1=1 ";
if(linkman!=null){
if(!"".equals(linkman.getName())){
where = where+" and l.surName||l.name like '%"+linkman.getSurName()+"%' ";
}
if(!"".equals(linkman.getCustomerName())){
where = where+" and l.CustomerName like '%"+linkman.getCustomerName()+"%' ";
}
if(!"".equals(linkman.getEmail())){
where = where+" and l.Email like '%"+linkman.getEmail()+"%' ";
}
}
String hql=" select count(*) from LinkMan l "+where;
count=Integer.valueOf(super.getuniqbyhql(hql).toString());
return count;
}
分页action传的页码值
public String dolist(){
Lis