- 浏览: 3559532 次
- 性别:
- 来自: 杭州
文章分类
- 全部博客 (1491)
- Hibernate (28)
- spring (37)
- struts2 (19)
- jsp (12)
- servlet (2)
- mysql (24)
- tomcat (3)
- weblogic (1)
- ajax (36)
- jquery (47)
- html (43)
- JS (32)
- ibatis (0)
- DWR (3)
- EXTJS (43)
- Linux (15)
- Maven (3)
- python (8)
- 其他 (8)
- JAVASE (6)
- java javase string (0)
- JAVA 语法 (3)
- juddiv3 (15)
- Mule (1)
- jquery easyui (2)
- mule esb (1)
- java (644)
- log4j (4)
- weka (12)
- android (257)
- web services (4)
- PHP (1)
- 算法 (18)
- 数据结构 算法 (7)
- 数据挖掘 (4)
- 期刊 (6)
- 面试 (5)
- C++ (1)
- 论文 (10)
- 工作 (1)
- 数据结构 (6)
- JAVA配置 (1)
- JAVA垃圾回收 (2)
- SVM (13)
- web st (1)
- jvm (7)
- weka libsvm (1)
- weka屈伟 (1)
- job (2)
- 排序 算法 面试 (3)
- spss (2)
- 搜索引擎 (6)
- java 爬虫 (6)
- 分布式 (1)
- data ming (1)
- eclipse (6)
- 正则表达式 (1)
- 分词器 (2)
- 张孝祥 (1)
- solr (3)
- nutch (1)
- 爬虫 (4)
- lucene (3)
- 狗日的腾讯 (1)
- 我的收藏网址 (13)
- 网络 (1)
- java 数据结构 (22)
- ACM (7)
- jboss (0)
- 大纸 (10)
- maven2 (0)
- elipse (0)
- SVN使用 (2)
- office (1)
- .net (14)
- extjs4 (2)
- zhaopin (0)
- C (2)
- spring mvc (5)
- JPA (9)
- iphone (3)
- css (3)
- 前端框架 (2)
- jui (1)
- dwz (1)
- joomla (1)
- im (1)
- web (2)
- 1 (0)
- 移动UI (1)
- java (1)
- jsoup (1)
- 管理模板 (2)
- javajava (1)
- kali (7)
- 单片机 (1)
- 嵌入式 (1)
- mybatis (2)
- layui (7)
- asp (12)
- asp.net (1)
- sql (1)
- c# (4)
- andorid (1)
- 地价 (1)
- yihuo (1)
- oracle (1)
最新评论
-
endual:
https://blog.csdn.net/chenxbxh2 ...
IE6 bug -
ice86rain:
你好,ES跑起来了吗?我的在tomcat启动时卡在这里Hibe ...
ES架构技术介绍 -
TopLongMan:
...
java public ,protect,friendly,private的方法权限(转) -
贝塔ZQ:
java实现操作word中的表格内容,用插件实现的话,可以试试 ...
java 读取 doc poi读取word中的表格(转) -
ysj570440569:
Maven多模块spring + springMVC + JP ...
Spring+SpringMVC+JPA
2011-01-24
使用 HibernateTemplate 实现分页查询
文章分类:Java编程
/*** 使用hql 语句进行操作
* @param hql HSQL 查询语句
* @param offset 开始取数据的下标
* @param length 读取数据记录数
* @return List 结果集
*/
public List getListForPage(final String hql, final int offset, final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list; }});
return list;}
=======================================
Spring 整合 Hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate的回调机制扩展 hibernateTemplate的功能实现分页
/**
* 使用hql 语句进行操作
* @param hql
* @param offset
* @param length
* @return List
*/
public List getListForPage(final String hql, final int offset,
final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list;
}
});
return list;
}/**
* 使用criterion进行操作
* @param arg
* @param criterions
* @param offset
* @param length
* @return List
*/
protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(arg);
//循环遍历添加约束条件
for (int i = 0; i < criterions.length; i++) {
criteria.add(criterions[i]);
}
criteria.setFirstResult(offset);
criteria.setMaxResults(length);
return criteria.list();
}
});
return list;
}
==================================================================
扩展HibernateTemplate,实现分页查询 (回调)
在使用hibernate时,可以用query.setMaxResults(10);
query.setFirstResult(130);方便的实现分页,不过spring的HibernateTemplate没有这个功能,可以用回调实现.public List findUsers(final int firstResult, final int maxResults) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s)
throws HibernateException, SQLException {
String q = "from User as user";
Query query = s.createQuery(q);
query.setFirstResult(firstResult);
query.setMaxResults(maxResults);
List list = query.list();
return list;
}
});
}
/**
* 使用hql 语句进行操作
* @param hql
* @param offset
* @param length
* @return List
*/
public List getListForPage(final String hql, final int offset,
final int length) {List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list;
}
});
return list;
}/**
* 使用criterion进行操作
* @param arg
* @param criterions
* @param offset
* @param length
* @return List
*/
protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) {List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(arg);
//循环遍历添加约束条件
for (int i = 0; i < criterions.length; i++) {
criteria.add(criterions);
}
criteria.setFirstResult(offset);
criteria.setMaxResults(length);
return criteria.list();
}
});
return list;
}
============================================
hxzon
public List getCategorys(final int currentpage, final int pagesize) {
log.debug("finding all ShbbsCategory instances");
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql = "from ShbbsCategory";
Query query = session.createQuery(hql);
query.setFirstResult((currentpage - 1) * pagesize);
query.setMaxResults(pagesize);
List list = query.list();
return list;
}
});
return list;
}
public int getCount() {
int count = 0;
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql = "SELECT COUNT(p.id) from ShbbsCategory AS p ";
Query query = session.createQuery(hql);
List list = query.list();
return list;
}
});
if (list.size() > 0) {
count = (Integer) list.get(0);
}
return count;
}
public List getCategorysByLike(final String cond, final int currentpage,
final int pagesize) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql = "FROM ShbbsCategory AS p WHERE p.uid LIKE ? OR p.name LIKE ?";
Query query = session.createQuery(hql);
query.setString(0, "%" + cond + "%");
query.setString(1, "%" + cond + "%");
query.setFirstResult((currentpage - 1) * pagesize);
query.setMaxResults(pagesize);
List list = query.list();
return list;
}
});
return list;
}
public int getByLikeCount(final String cond) {
int count = 0;
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql = "SELECT COUNT(p.id) from Person AS p WHERE p.uid LIKE ? OR p.name LIKE ?";
Query query = session.createQuery(hql);
query.setString(0, "%" + cond + "%");
query.setString(1, "%" + cond + "%");
List list = query.list();
return list;
}
});
if (list.size() > 0) {
count = (Integer) list.get(0);
}
return count;
}
原来使用getHibernateTemplate().getSessionFactory().getSession()来取得session运行期会出错。
使用 HibernateTemplate 实现分页查询
文章分类:Java编程
/*** 使用hql 语句进行操作
* @param hql HSQL 查询语句
* @param offset 开始取数据的下标
* @param length 读取数据记录数
* @return List 结果集
*/
public List getListForPage(final String hql, final int offset, final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session) throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list; }});
return list;}
=======================================
Spring 整合 Hibernate 时候用的 HibernateTemplate 不支持分页,因此需要自己包装一个类进行分页,具体实现如下...使用spring的hibernateTemplate的回调机制扩展 hibernateTemplate的功能实现分页
/**
* 使用hql 语句进行操作
* @param hql
* @param offset
* @param length
* @return List
*/
public List getListForPage(final String hql, final int offset,
final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list;
}
});
return list;
}/**
* 使用criterion进行操作
* @param arg
* @param criterions
* @param offset
* @param length
* @return List
*/
protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(arg);
//循环遍历添加约束条件
for (int i = 0; i < criterions.length; i++) {
criteria.add(criterions[i]);
}
criteria.setFirstResult(offset);
criteria.setMaxResults(length);
return criteria.list();
}
});
return list;
}
==================================================================
扩展HibernateTemplate,实现分页查询 (回调)
在使用hibernate时,可以用query.setMaxResults(10);
query.setFirstResult(130);方便的实现分页,不过spring的HibernateTemplate没有这个功能,可以用回调实现.public List findUsers(final int firstResult, final int maxResults) {
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s)
throws HibernateException, SQLException {
String q = "from User as user";
Query query = s.createQuery(q);
query.setFirstResult(firstResult);
query.setMaxResults(maxResults);
List list = query.list();
return list;
}
});
}
/**
* 使用hql 语句进行操作
* @param hql
* @param offset
* @param length
* @return List
*/
public List getListForPage(final String hql, final int offset,
final int length) {List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Query query = session.createQuery(hql);
query.setFirstResult(offset);
query.setMaxResults(length);
List list = query.list();
return list;
}
});
return list;
}/**
* 使用criterion进行操作
* @param arg
* @param criterions
* @param offset
* @param length
* @return List
*/
protected List getListForPage(final Class arg, final Criterion[] criterions,final int offset, final int length) {List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
Criteria criteria = session.createCriteria(arg);
//循环遍历添加约束条件
for (int i = 0; i < criterions.length; i++) {
criteria.add(criterions);
}
criteria.setFirstResult(offset);
criteria.setMaxResults(length);
return criteria.list();
}
});
return list;
}
============================================
hxzon
public List getCategorys(final int currentpage, final int pagesize) {
log.debug("finding all ShbbsCategory instances");
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql = "from ShbbsCategory";
Query query = session.createQuery(hql);
query.setFirstResult((currentpage - 1) * pagesize);
query.setMaxResults(pagesize);
List list = query.list();
return list;
}
});
return list;
}
public int getCount() {
int count = 0;
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql = "SELECT COUNT(p.id) from ShbbsCategory AS p ";
Query query = session.createQuery(hql);
List list = query.list();
return list;
}
});
if (list.size() > 0) {
count = (Integer) list.get(0);
}
return count;
}
public List getCategorysByLike(final String cond, final int currentpage,
final int pagesize) {
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql = "FROM ShbbsCategory AS p WHERE p.uid LIKE ? OR p.name LIKE ?";
Query query = session.createQuery(hql);
query.setString(0, "%" + cond + "%");
query.setString(1, "%" + cond + "%");
query.setFirstResult((currentpage - 1) * pagesize);
query.setMaxResults(pagesize);
List list = query.list();
return list;
}
});
return list;
}
public int getByLikeCount(final String cond) {
int count = 0;
List list = getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session session)
throws HibernateException, SQLException {
String hql = "SELECT COUNT(p.id) from Person AS p WHERE p.uid LIKE ? OR p.name LIKE ?";
Query query = session.createQuery(hql);
query.setString(0, "%" + cond + "%");
query.setString(1, "%" + cond + "%");
List list = query.list();
return list;
}
});
if (list.size() > 0) {
count = (Integer) list.get(0);
}
return count;
}
原来使用getHibernateTemplate().getSessionFactory().getSession()来取得session运行期会出错。
发表评论
-
犯规犯规犯规
2015-09-18 16:45 1348http://bbs.hupu.com/4466597.htm ... -
快速掌握Hibernate中悲观锁和乐观锁
2012-10-19 21:33 1618快速掌握Hibernate ... -
Hibernate延迟加载机制
2012-10-19 21:22 1374Hibernate延迟加载 ... -
Hibernate 子类中不能用session 操作数据库
2012-08-28 14:46 1747Object obj = this.g ... -
hibernate3 下载网址
2012-08-28 12:53 1945我的天啊,居然找个hibernate下载的地址也找了半天 h ... -
师父告诉我诀窍
2012-08-23 16:53 1526<value>classpath*:com ... -
spring 整合 hibernate
2012-07-28 10:41 15011.闲话少说了,先看版本吧。 2.在看要导入的包吧: ... -
使用spring的hibernateTemplate的方法 (转)
2012-07-24 17:12 1543使用spr ... -
hibernate 增删改查
2012-07-24 00:07 1874mysql中库表News,字段如下 id | i ... -
hibernate的对象映射配置文件中属性的介绍和说明
2012-03-04 13:45 1698持久化对象之间一对一的关联关系是通过one-to-one 元 ... -
HIbernate主键生成策略详解 (转)
2012-03-04 13:39 1749HIberna ... -
hibernate 复习 单向一对一的实现
2012-03-03 15:38 1475hibernate中单向一对一实现有三种方式:主键关联, ... -
hibernate 复习--demo
2012-03-02 20:40 1560今天晚上,搞好了hibernate的demo了,明天开始就是搞 ... -
HibernateDaoSupport与JdbcDaoSupport
2011-12-30 07:38 17142011年11月07日 星期一 ... -
hibernage getcurrentsession
2011-12-28 18:56 1587org.hibernate.Hibe ... -
hibernate开发资料学习资料
2011-12-28 07:42 1548http://dev.21tx.com/java/struts ... -
hibernate one to many lazy 常见错误解决
2011-06-26 20:17 2614解释一个关于Hibernate l ... -
hibernate的增删改查
2011-06-25 22:03 1860package com.endual.test; impor ... -
frameset
2011-05-25 09:43 1092<a href=url target=_blank> ... -
Hibernate+Spring+Struts2+ExtJS开发CRUD功能
2011-05-17 08:56 4837http://blog.csdn.net/myloon/arc ...
相关推荐
在S2SH购物车项目中,持久层的分页功能是通过Hibernate和HibernateTemplate实现的。这通常涉及到使用Criteria、Query或HQL语句配合FirstResult和MaxResults参数来限制返回的结果集大小,从而达到分页效果。这样的...
在Hibernate中,可以使用`setFirstResult`和`setMaxResults`来实现分页。 **示例代码**: ```java public Iterator getInfos(int position, int length) throws Exception { Iterator iterator = null; String ...
在`Criteria`中,我们可以使用`setFirstResult()`设置起始行,`setMaxResults()`限制返回结果的数量,实现分页。而在`HQL`中,同样可以结合这两个方法达到同样的效果。 然后,来看**位置参数查询**,也称为预编译...
通过结合`find`方法使用,可以实现高效的分页查询功能。 ##### 3. 命名查询支持 `HibernateTemplate`还支持命名查询功能,这是一种预先定义好的查询方式,可以在Hibernate配置文件中预先定义好查询语句及其名称,...
综合来看,这个压缩包包含了一系列关于使用JQuery实现Ajax分页和查询,以及Hibernate和Spring整合进行分页查询的教程和实例代码。对于学习和理解这些技术在实际项目中的应用,这些资源是非常宝贵的。开发者可以通过...
// 使用HibernateTemplate查询所有Person return getHibernateTemplate().find("from Person"); } // 根据ID获取Person public Person getPersonById(int personId) { return (Person) getHibernateTemplate...
9. `void setMaxResults(int maxResults)`: 用于设置查询结果的分页大小,实现数据检索的优化。 在实际应用中,DAO(Data Access Object)类通常会使用HibernateTemplate。例如,以下是一个简单的`PersonDAOImpl`类...
`queryForPage`方法通过`HibernateTemplate`的`executeFind`方法执行HQL查询并进行分页,利用`setFirstResult`设置起始索引(即偏移量),`setMaxResults`设置每页显示的记录数。而`getAllRowCount`方法则通过`find`...
### SSH实现分页查询知识点详解 #### 一、概述 在软件开发中,尤其是在Web应用领域,对数据库的高效查询是非常重要的。随着数据量的增长,单一的查询方式往往难以满足性能需求,特别是在需要处理大量数据时。为了...
2. **实现分页查询**:在`MemberDaoImpl`中,使用`HibernateDaoSupport`提供的`getHibernateTemplate().find(hql)`获取所有记录,然后通过`setFirstResult()`和`setMaxResults()`设置分页参数。这两个方法分别对应于...
在Hibernate中,我们可以通过设置FirstResult(对应于SQL的LIMIT开始位置)和MaxResults(对应于SQL的LIMIT大小)参数来实现分页查询。 以下是一个简单的示例,展示如何在Spring和Hibernate中实现组合查询和分页: ...
以下将详细讲解如何使用这三个框架实现分页功能。 首先,Spring作为核心的依赖注入(DI)和面向切面编程(AOP)框架,负责管理应用程序的组件,包括SessionFactory的创建和管理。在配置文件中,我们可以通过Spring...
在DAO层,我们需要根据PageBean的参数来编写SQL查询,例如使用`LIMIT`和`OFFSET`在MySQL中实现分页。Spring的`HibernateTemplate`或`Session`对象可以帮助我们执行SQL并返回结果。 ```java public PageBean<User> ...
在DAO层的实现类`MemberDaoImpl`中,`queryForPage`方法利用`HibernateTemplate`的`executeFind`方法,通过传入一个`HibernateCallback`的匿名内部类来执行HQL,并设置分页参数`setFirstResult`和`setMaxResults`。...
最后,使用`setFirstResult()`和`setMaxResults()`方法来指定查询的起始位置(基于0)和每页的记录数,从而实现分页。 2. **无参数分页方法** `selectByPage()`: 这个方法与`selectByPages()`相似,但没有`params...
Spring提供了JdbcTemplate和HibernateTemplate等工具类,它们支持简单的分页查询。通过设置startRow和maxRows参数,可以实现数据库的分页查询。同时,Spring Data JPA和Spring Data MongoDB等子项目还提供了更高级...
4. 实现分页模型:创建一个包含当前页、总页数、每页记录数等属性的分页对象。 5. 更新JSP视图:展示分页链接,根据用户选择的页码发送请求,并显示对应的分页结果。 6. 使用Spring的AOP进行事务管理:确保在处理...
在SSH(Spring、Struts2、Hibernate)框架...通过在DAO层设计合适的接口和实现,可以轻松地实现分页查询,并通过封装的`PageBean`类将分页信息传递给前端。这种方法既保持了代码的整洁,又保证了分页功能的高效和灵活。
- 使用SQL查询语句实现分页。 ```jsp ! int curpage = 1; // 当前页 int page_record = 20; // 每页显示记录数 %> curpage = Integer.parseInt(request.getParameter("page")); // 获取请求页码 ResultSet...
5. **查询和结果集处理**:提供了丰富的查询方法,如`find()`, `load()`, `get()`等,以及方便的结果集转换和分页功能。 6. **Callback机制**:通过HibernateCallback接口,可以在Hibernate Session内部执行自定义...