日期:2014-05-19  浏览次数:20587 次

ssh2做一个查询后分页。
有谁做过查询后,分页的吗。意思就是根据用户所填写的关键字来进行查询,如果查询到很多,在根据查询的结果进行分页。。
最好给个实例来研究研究

------解决方案--------------------
比如:查询学生信息
条件:学生姓名、学生性别、学生住址
语句:


String sql=select * from tb_table where 1=1;
//根据姓名条件构造sql
if(stuname!=null)(sql+=" and stuname="+stuname;)
//根据年龄条件构造sql
if(stusex!=null)(sql+=" and stusex="+stusex;)
//根据住址条件构造sql
if(stuaddr!=null)(sql+=" and stunaddr="+stuaddr;)
//分页条件根据不同数据库例如oracle
sql+=" order by id having rownum>"+(index-1)*pageSize+" and rownum<="+(index)*pageSize;

一般框架SSH有现成的方法。直接调用不需要拼凑sql语句。


------解决方案--------------------
public List<E> findByPage(final String HQL, final int pageSize, final int pageNow) {
List<E> lists = getHibernateTemplate().executeFind(new HibernateCallback<Object>() {
@Override
public List<E> doInHibernate(Session session)
throws HibernateException, SQLException {
List<E> lists = session.createQuery(HQL).setMaxResults(pageSize).setFirstResult(pageSize*pageNow).list();
return lists;
}
});
return lists;
}