前面是直接查询所有用户,现在按照姓名模糊查询,带上用户名参数:
@Override
public int userNums() {
List list = hibernateTemplate.find("select count(*) from Users");
int num = Integer.parseInt(list.get(0).toString());
return num;
}
//带用户名模糊查询的总记录数
@Override
public int userNumsByUsername(String username) {
List list = hibernateTemplate.find("select count(*) from Users u where u.username like '%"+username+"%'");
int num = Integer.parseInt(list.get(0).toString());
return num;
}
@Override
public PageBean<Users> queryUsersForPage(int pageSize, int page) {
// 获取所以的记录数
int allRow = this.userNums();
// 获得总页数
int totalPage = PageBean.countTotalPage(pageSize, allRow);
// 计算当前页
final int currentPage = PageBean.coutCurrentPage(page);
// 当前要显示的起始数
final int offset = PageBean.countOffset(pageSize, currentPage);
// 获取要显示的页面信息 offset要显示页面的第一个的所以
List<Users> list = this.getListForPage("from Users", offset, pageSize);
// System.out.println(list);
PageBean<Users> pagebean = new PageBean();
pagebean.setPagesize(pageSize);
pagebean.setCurrentPage(currentPage);
pagebean.setAllRow(allRow);
pagebean.setTotalPage(totalPage);
pagebean.setList(list);
pagebean.init();
return pagebean;
}
//带用户名模糊查询
@Override
public PageBean<Users> queryUsersForPageByUsername(int pageSize, int page,
String username) {
// 获取所以的记录数
int allRow = this.userNumsByUsername(username);
// 获得总页数
int totalPage = PageBean.countTotalPage(pageSize, allRow);
// 计算当前页
final int currentPage = PageBean.coutCurrentPage(page);
// 当前要显示的起始数
final int offset = PageBean.countOffset(pageSize, currentPage);
// 获取要显示的页面信息 offset要显示页面的第一个的所以
List<Users> list = this.getListForPage("from Users u where u.username like '%"+username+"%'" , offset, pageSize);
// System.out.println(list);
PageBean<Users> pagebean = new PageBean();
pagebean.setPagesize(pageSize);
pagebean.setCurrentPage(currentPage);
pagebean.setAllRow(allRow);
pagebean.setTotalPage(totalPage);
pagebean.setList(list);
pagebean.init();
return pagebean;
}
public List<Users> getListForPage(final String hql, final int offset, final int length){
List list = hibernateTemplate.executeFind(new HibernateCallback(){
public Object doInHibernate(Session session) throws HibernateException,SQLException{
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List<Users> list = query.list();
return list;
}
});
return list;
}