- 浏览: 308033 次
- 性别:
- 来自: 河南开封
文章分类
最新评论
-
keven_niu:
好不错哦。。
jquery dialog对话框插件实例弹层效果 -
我是云:
zjuttsw 写道zjuttsw 写道楼主最后两个例子很好。 ...
Java switch-case语句用法 -
ytt06460105:
问题已解决。
使用JDBC访问DB2的问题:no db2jdbc in java.library.path -
ytt06460105:
楼主:按照你的方法做了,又出现了新的错误:[com.aliba ...
使用JDBC访问DB2的问题:no db2jdbc in java.library.path -
zjuttsw:
zjuttsw 写道楼主最后两个例子很好。学习了 不过第三条好 ...
Java switch-case语句用法
/*** 使用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运行期会出错。
* @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运行期会出错。
发表评论
-
Apache+Tomcat集群配置
2013-06-24 09:49 1249Tomcat 本文Apache+Tomcat集群 ... -
FusionCharts参数的详细说明和功能特性
2013-03-13 12:22 1172功能特性animation ... -
Tomcat中关于堆内存与永久区内存的设置
2011-12-12 13:49 27121.在tomcat (免安装版)文件夹下的bin文件夹下找 ... -
Tomcat内存溢出的原因 三个原因
2011-12-12 13:38 1707Tomcat内存溢出的原因 在生产环境中tomcat内存 ... -
xml中大于、小于等特殊字符处理
2011-10-11 09:57 3039可以用下面这种写法转义 < ... -
FreeMarker在struts2,JAVA,web中的应用实例
2011-09-15 10:19 2008FreeMarker概述 * FreeMarker是一 ... -
J2EE里面使用freemark技术
2011-09-15 09:46 1588模板技术在现代的软件 ... -
java乱码问题
2011-09-01 09:44 3304Java中乱码问题很常见,原因也多种多样,这里做一个总结,不求 ... -
ognl表达式入门应用
2011-08-30 17:12 1597package foo.test; public cla ... -
XFire建立webservice服务和客户端
2011-08-15 15:50 1828XFire 是与Axis 2并列的新一代Web Service ... -
字符编码过滤器的一般写法
2011-08-04 16:24 1198今天研究别人的代码的时候突然发现spring的org.spri ... -
struts2的日期date格式化(3种)
2011-08-02 09:27 2691在直接<s:textfield中也要日期格式化,平时使用 ... -
j2ee获取客户端参数集
2011-07-07 18:28 1655Java代码 package javacommon.u ... -
HttpURLConnection发送文件
2011-07-05 10:16 2470Java代码 URL url = new URL( ... -
tomcat部署get请求乱码问题解决方法
2011-06-13 18:06 1922默认情况下,Tomcat对请求采用的默认编码是ISO-8859 ... -
Tomcat:IOException while loading persisted sessions: java.io.EOFException
2011-06-13 15:56 1642一直用tomcat一段时间都一切正常,最近一次启动tomcat ... -
jsp打印问题
2011-04-07 15:58 3136jsp打印问题 回复于 2006-01-06 22:43:45 ... -
ssh分页(多个例子)
2011-03-31 17:50 3330先是一个page的bean: Java代码 package ... -
分页标签:pager-taglib使用指南
2011-01-26 18:07 1659一简介, Pager-taglib,支持多种风格的分页显示。 ... -
jstl 遍历集合
2011-01-26 16:02 5116<%@ page language="java ...
相关推荐
在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`中,同样可以结合这两个方法达到同样的效果。 然后,来看**位置参数查询**,也称为预编译...
##### 10.5.2.6 使用 HibernateTemplate 实现分页查询 - **创建查询方法**:使用`HibernateTemplate`类创建分页查询的方法。 #### 10.6 小结 本章介绍了如何使用MyEclipse 6来开发基于Spring框架的应用程序,涵盖...
10.5.2.6 使用 HibernateTemplate 实现分页查询 254 10.6 小结 255 10.7 参考资料 255 10.7.1 MyEclipse生成的Spring+Hibernate无法保存数据问题的解决方法 255 10.7.2 MyEclipse生成的Spring+Hibernate无法保存数据...
通过结合`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应用领域,对数据库的高效查询是非常重要的。随着数据量的增长,单一的查询方式往往难以满足性能需求,特别是在需要处理大量数据时。为了...
以下将详细讲解如何使用这三个框架实现分页功能。 首先,Spring作为核心的依赖注入(DI)和面向切面编程(AOP)框架,负责管理应用程序的组件,包括SessionFactory的创建和管理。在配置文件中,我们可以通过Spring...
2. **实现分页查询**:在`MemberDaoImpl`中,使用`HibernateDaoSupport`提供的`getHibernateTemplate().find(hql)`获取所有记录,然后通过`setFirstResult()`和`setMaxResults()`设置分页参数。这两个方法分别对应于...
在Hibernate中,我们可以通过设置FirstResult(对应于SQL的LIMIT开始位置)和MaxResults(对应于SQL的LIMIT大小)参数来实现分页查询。 以下是一个简单的示例,展示如何在Spring和Hibernate中实现组合查询和分页: ...
在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进行事务管理:确保在处理...