用Hibernate中的Criteria实现后台分页方法
程序员文章站
2022-03-02 13:47:42
...
在hibernate中,用criteria实现后台分页方法,不多说了直接看程序吧。
[*]下面首先根据查询条件和每页记录数获得记录列表:
在这里,为了简洁,我把查询的其他条件去掉了,用的时候可以自己添加,另外在使用的时候把Object.class换成相应的实体就可以了。
[*]下面是得到符合条件的记录总数
代码就这么多,很容易看明白的。
[*]下面首先根据查询条件和每页记录数获得记录列表:
/**
* 根据不同条件获取日志列表
* @param inter 接口名称
* @param firstResult 起始记录
* @param maxResult 每页显示的最大记录数
* @return
*/
public List<UipInterfaceLog> getUipInterfaceLogsByCondition (String inter,int firstResult, int maxResult) {
List<UipInterfaceLog> result = null;
Criteria criteria = this.getSession().createCriteria(UipInterfaceLog.class);
criteria.add(Restrictions.like("inter", inter));
criteria.setFirstResult(firstResult);
criteria.setMaxResults(maxResult);
result = criteria.list();
return result;
}
在这里,为了简洁,我把查询的其他条件去掉了,用的时候可以自己添加,另外在使用的时候把Object.class换成相应的实体就可以了。
[*]下面是得到符合条件的记录总数
/**
* 根据条件得到记录总数
* @param inter
*/
public int getUipInterfaceLogsByCondition (String inter) {
List<UipInterfaceLog> result = null;
Criteria criteria = this.getSession().createCriteria(Object.class);
criteria.add(Restrictions.like("inter", inter));
// return criteria.list().size; 一定不能写成这样,如果这样写,随着数据库中记录的增多,每次创建的对象会越来越多,这个方法执行速度会越来越慢,最终会内存溢出导致系统崩溃。
return ((Integer) criteria.setProjection(Projections.rowCount()).uniqueResult()).intValue();
}
代码就这么多,很容易看明白的。
推荐阅读
-
用HTML5实现网站在windows8中贴靠的方法
-
Android中RecyclerView实现分页滚动的方法详解
-
序列化表单为json对象,datagrid带额外参提交一次查询 后台用Spring data JPA 实现带条件的分页查询 多表关联查询
-
用辅助列或VBA的方法实现在Excel中粘贴时跳过隐藏行
-
用Python实现服务器中只重载被修改的进程的方法
-
vue中如何实现后台管理系统的权限控制的方法示例
-
MySQL用limit方式实现分页的实例方法
-
Yii中实现处理前后台登录的新方法
-
模板字符串替换教程,实现一个 render(template, context) 方法,将 template 中的占位符用 context 填充
-
Node.js中Bootstrap-table的两种分页的实现方法