|
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
|---|---|
| 作者 | 正文 |
|
最后更新时间:2004-09-30
引用"Spring"手册上的话说: Hibernate+Spring显然是天生的结合.
下面是我用spring处理的一个HibernateDAO实例,可以看到,代码量大大减少了. [code:1] package infoweb.dao; import java.util.List; import java.util.Iterator; import infoweb.pojo.Info; import net.sf.hibernate.HibernateException; import net.sf.hibernate.Query; import net.sf.hibernate.Session; import org.springframework.orm.hibernate.HibernateCallback; import org.springframework.orm.hibernate.support.HibernateDaoSupport; /** * <p>Title: </p> * <p>Description: </p> * <p>Copyright: Copyright (c) 2004</p> * <p>Company: </p> * @author 段洪杰 * @version 1.0 */ public class InfoDAOImpl extends HibernateDaoSupport implements IInfoDAO { /** * 构造函数 */ public InfoDAOImpl() { super(); } /** * 增加记录 * @param info Info */ public void setInfo(Info info) throws Exception { getHibernateTemplate().save(info); } /** * 通过ID取得记录 * @param id String * @return Info */ public Info getInfoById(String id) throws Exception { Info info = (Info) getHibernateTemplate().load(Info.class, id); return info; } /** * 修改记录 * @param Info info */ public void modifyInfo(Info info) throws Exception { getHibernateTemplate().update(info); } /** * 删除记录 * @param Info info */ public void removeInfo(Info info) throws Exception { getHibernateTemplate().delete(info); } //////////////////////////////////////////////////////// ///// /// /////以下部份不带审核功能 /// ///// /// //////////////////////////////////////////////////////// /** * 取记录总数 * @return int */ public int getInfosCount() throws Exception { int count = 0; String queryString = "select count(*) from Info"; count = ((Integer) getHibernateTemplate().iterate(queryString).next()). intValue(); return count; } /** * 取所有记录集合 * @return Iterator */ public Iterator getAllInfos() throws Exception { Iterator iterator = null; String queryString = " select info from Info as info order by info.id desc"; List list = getHibernateTemplate().find(queryString); iterator = list.iterator(); return iterator; } /** * 取记录集合 * @return Iterator * @param int position, int length */ public Iterator getInfos(int position, int length) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info order by info.id desc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 取第一条记录 * @throws Exception * @return Station */ public Info getFirstInfo() throws Exception { Iterator iterator = null; Info info = null; String queryString = "select info from Info as info order by info.id desc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); if (iterator.hasNext()) { info = (Info) iterator.next(); } return info; } /** * 取最后一条记录 * @throws Exception * @return Station */ public Info getLastInfo() throws Exception { Iterator iterator = null; Info info = null; String queryString = "select info from Info as info order by info.id asc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); if (iterator.hasNext()) { info = (Info) iterator.next(); } return info; } //////////////////////////////////////////////////////// ///// /// ///// 以下部份表中要有特定字段才能正确运行 个人和企业 /// ///// /// //////////////////////////////////////////////////////// /** * 取符合条件记录总数, [表中要有 isperson 字段] * @return int * @param int isPerson */ public int getInfosCountByIsperson(int isPerson) throws Exception { int count = 0; String queryString = "select count(*) from Info as info where info.isperson =" + isPerson; count = ((Integer) getHibernateTemplate().iterate(queryString).next()). intValue(); return count; } /** * 取所有符合条件记录集合, 模糊查询条件.[表中要有 isperson 字段] * @return Iterator * @param int isPerson */ public Iterator getAllInfosByIsperson(int isPerson) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isperson =" + isPerson + " order by info.id desc"; List list = getHibernateTemplate().find(queryString); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 取符合条件记录集合, 模糊查询条件.[表中要有 isperson 字段] * @return Iterator * @param int isPerson,int position, int length */ public Iterator getInfosByIsperson(int isPerson, int position, int length) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isperson =" + isPerson + " order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } //////////////////////////////////////////////////////// ///// /// ///// 以下部份表中要有特定字段才能正确运行 查询部份 /// ///// /// /////////////////////////////////////////////////////// /** * 取符合条件记录总数, 模糊查询条件.[表中要有 title 字段] * @return int * @param String text */ public int getInfosCount(String text) throws Exception { int count = 0; count = ((Integer) getHibernateTemplate().iterate( "select count(*) from Info as info where info.title like '%" + text + "%'").next()).intValue(); return count; } /** * 取所有符合条件记录集合, 模糊查询条件.[表中要有 title 字段] * @return Iterator * @param String text */ public Iterator getAllInfos(String text) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.title like '%" + text + "%' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 取符合条件记录集合, 模糊查询条件.[表中要有 title 字段] * @return Iterator * @param String text,int position, int length */ public Iterator getInfos(String text, int position, int length) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.title like '%" + text + "%' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } //////////////////////////////////////////////////////// ///// /// ///// 以下部份表中要有特定字段才能正确运行 注册相关 /// ///// /// //////////////////////////////////////////////////////// /** * 取符合条件记录总数.[ 表中要有 registername 字段] * @return int * @param String text */ public int getInfosCountByRegisterName(String registerName) throws Exception { int count = 0; count = ((Integer) getHibernateTemplate().iterate( "select count(*) from Info as info where info.registername = '" + registerName + "'").next()).intValue(); return count; } /** * 通过注册名取得一条记录,如有多条,只取第一条.[表中要有 registername字段] * @param registername String * @return Info */ public Info getInfoByRegisterName(String registerName) throws Exception { Iterator iterator = null; Info info = null; String queryString = " select info from Info as info where info.registername='" + registerName + "' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); if (iterator.hasNext()) { info = (Info) iterator.next(); } return info; } /** * 通过注册名取得所有记录集合.[表中要有 registername字段] * @param registername String * @return Iterator */ public Iterator getAllInfosByRegisterName(String registerName) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.registername='" + registerName + "' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 通过注册名取得记录列表.[表中要有 registername字段] * @param registername String * @return Iterator */ public Iterator getInfosByRegisterName(String registerName, int position, int length) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.registername='" + registerName + "' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } //////////////////////////////////////////////////////// ///// /// ///// 以下部份表中要有特定字段才能正确运行 树型版块 /// ///// /// //////////////////////////////////////////////////////// /** * 取记录总数.[ 表中要有 board_id 字段] * @return int * @param String boardId */ public int getInfosCountByBoard(String boardId) throws Exception { int count = 0; count = ((Integer) getHibernateTemplate().iterate( "select count(*) from Info as info where info.boardId = '" + boardId + "'").next()).intValue(); return count; } /** * 通过版块名取得所有记录集合.[表中要有 board_id字段] * @param BoardId String * @return Iterator */ public Iterator getAllInfosByBoard(String boardId) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.boardId='" + boardId + "' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 通过版块名取得记录列表.[表中要有 board_id字段] * @param BoardId String * @return Iterator */ public Iterator getInfosByBoard(String boardId, int position, int length) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.boardId='" + boardId + "' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 取符合条件记录总数.[ 表中要有 board_id 字段,title] 模糊查询title * @return int * @param String boardId ,String text */ public int getInfosCountByBoard(String boardId, String text) throws Exception { int count = 0; count = ((Integer) getHibernateTemplate().iterate( "select count(*) from Info as info where info.boardId='" + boardId + "' and info.title like '%" + text + "%'").next()).intValue(); return count; } /** * 通过版块名取得记录列表.[表中要有 board_id字段] 模糊查询title * @param String boardID,int position, int length * @return Iterator */ public Iterator getInfosByBoard(String boardId, int position, int length, String text) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.boardId='" + boardId + "' and info.title like '%" + text + "%' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } //////////////////////////////////////////////////////// ///// /// /////以下部份带有审核功能 /// ///// /// //////////////////////////////////////////////////////// /** * 取记录总数 * @return int * @param int isAuditing */ public int getInfosCount(int isAuditing) throws Exception { int count = 0; count = ((Integer) getHibernateTemplate().iterate( "select count(*) from Info as info where info.isauditing=" + isAuditing).next()).intValue(); return count; } /** * 取所有记录集合 * @return Iterator * @param int position, int length,int isAuditing */ public Iterator getAllInfos(int isAuditing) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isauditing=" + isAuditing + " order by info.id desc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 取记录集合 * @return Iterator * @param int position, int length,int isAuditing */ public Iterator getInfos(int position, int length, int isAuditing) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isauditing=" + isAuditing + " order by info.id desc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } //////////////////////////////////////////////////////////////// ///// /// ///// 以下部份表中要有特定字段才能正确运行 有审核功能 个人和企业 /// ///// /// /////////////////////////////////////////////////////////////// /** * 取符合条件记录总数, [表中要有 isperson isAuditing 字段] * @return int * @param int isPerson,int isAuditing */ public int getInfosCountByIsperson(int isPerson, int isAuditing) throws Exception { int count = 0; count = ((Integer) getHibernateTemplate().iterate( "select count(*) from Info as info where info.isperson =" + isPerson + " and info.isauditing=" + isAuditing).next()).intValue(); return count; } /** * 取所有符合条件记录集合, 模糊查询条件.[表中要有 isperson isAuditing 字段] * @return Iterator * @param int isPerson,int isAuditing */ public Iterator getAllInfosByIsperson(int isPerson, int isAuditing) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isperson =" + isPerson + " and info.isauditing=" + isAuditing + " order by info.id desc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 取符合条件记录集合, 模糊查询条件.[表中要有 isperson isAuditing 字段] * @return Iterator * @param int isPerson,int position, int length,int isAuditing */ public Iterator getInfosByIsperson(int isPerson, int position, int length, int isAuditing) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isperson =" + isPerson + " and info.isauditing=" + isAuditing + " order by info.id desc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } //////////////////////////////////////////////////////// ///// /// ///// 要有特定字段才能正确运行 有审核功能 查询部份 /// ///// /// /////////////////////////////////////////////////////// /** * 取符合条件记录总数, 模糊查询条件.[表中要有 title 字段] * @return int * @param String text,int isAuditing */ public int getInfosCount(String text, int isAuditing) throws Exception { int count = 0; count = ((Integer) getHibernateTemplate().iterate( "select count(*) from Info as info where info.isauditing=" + isAuditing + " and info.title like '%" + text + "%'").next()). intValue(); return count; } /** * 取所有符合条件记录集合, 模糊查询条件.[表中要有 title 字段] * @return Iterator * @param String text,int isAuditing */ public Iterator getAllInfos(String text, int isAuditing) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isauditing=" + isAuditing + " and info.title like '%" + text + "%' order by info.id desc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 取符合条件记录集合, 模糊查询条件.[表中要有 title 字段] * @return Iterator * @param String text,int position, int length,int isAuditing */ public Iterator getInfos(String text, int position, int length, int isAuditing) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isauditing=" + isAuditing + " and info.title like '%" + text + "%' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } //////////////////////////////////////////////////////// ///// /// ///// 要有特定字段才能正确运行 有审核功能 注册相关 /// ///// /// //////////////////////////////////////////////////////// /** * 取符合条件记录总数.[ 表中要有 registername isauditing字段] * @return int * @param String text,int isAuditing */ public int getInfosCountByRegisterName(String registerName, int isAuditing) throws Exception { int count = 0; count = ((Integer) getHibernateTemplate().iterate( "select count(*) from Info as info where info.isauditing=" + isAuditing + " and info.registername = '" + registerName + "'").next()). intValue(); return count; } /** * 通过注册名取得一条记录,如有多条,只取第一条.[表中要有 registername isauditing字段] * @param registername String,int isAuditing * @return Info */ public Info getInfoByRegisterName(String registerName, int isAuditing) throws Exception { Iterator iterator = null; Info info = null; String queryString = " select info from Info as info where info.isauditing=" + isAuditing + " and info.registername='" + registerName + "' order by info.id desc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); if (iterator.hasNext()) { info = (Info) iterator.next(); } return info; } /** * 通过注册名取得所有记录集合.[表中要有 registername isauditing字段] * @param registername String,int isAuditing * @return Iterator */ public Iterator getAllInfosByRegisterName(String registerName, int isAuditing) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isauditing=" + isAuditing + " and info.registername='" + registerName + "' order by info.id desc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 通过注册名取得记录列表.[表中要有 registername isauditing字段] * @param registername String,int isAuditing * @return Iterator */ public Iterator getInfosByRegisterName(String registerName, int position, int length, int isAuditing) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isauditing=" + isAuditing + " and info.registername='" + registerName + "' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } //////////////////////////////////////////////////////// ///// /// ///// 要有特定字段才能正确运行 有审核功能 树型版块 /// ///// /// //////////////////////////////////////////////////////// /** * 取记录总数.[ 表中要有 board_id isauditing字段] * @return int * @param String boardId,int isAuditing */ public int getInfosCountByBoard(String boardId, int isAuditing) throws Exception { int count = 0; count = ((Integer) getHibernateTemplate().iterate( "select count(*) from Info as info where info.isauditing=" + isAuditing + " and info.boardId = '" + boardId + "'").next()).intValue(); return count; } /** * 通过版块名取得所有记录集合.[表中要有 board_id isauditing字段] * @param BoardId String,int isAuditing * @return Iterator */ public Iterator getAllInfosByBoard(String boardId, int isAuditing) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isauditing=" + isAuditing + " and info.boardId='" + boardId + "' order by info.id desc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 通过版块名取得记录列表.[表中要有 board_id isauditing字段] * @param BoardId String,int isAuditing * @return Iterator */ public Iterator getInfosByBoard(String boardId, int position, int length, int isAuditing) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isauditing=" + isAuditing + " and info.boardId='" + boardId + "' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } /** * 取符合条件记录总数.[ 表中要有 board_id isauditing字段,title] 模糊查询title * @return int * @param String boardId ,String text,int isAuditing */ public int getInfosCountByBoard(String boardId, String text, int isAuditing) throws Exception { int count = 0; count = ((Integer) getHibernateTemplate().iterate( "select count(*) from Info as info where info.isauditing=" + isAuditing + " and info.boardId='" + boardId + "' and info.title like '%" + text + "%'").next()).intValue(); return count; } /** * 通过版块名取得记录列表.[表中要有 board_id字段 isauditing] 模糊查询title * @param String boardId,int position, int length,int isAuditing * @return Iterator */ public Iterator getInfosByBoard(String boardId, int position, int length, String text, int isAuditing) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info where info.isauditing=" + isAuditing + " and info.boardId='" + boardId + "' and info.title like '%" + text + "%' order by info.id desc"; //创建查询 Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } } [/code:1] 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
最后更新时间:2004-12-30
dhj1真是无私奉献,学习学习
|
|
| 返回顶楼 | |
|
最后更新时间:2004-12-30
可真够长的!能否帖贴你的SERVICE的代码!
|
|
| 返回顶楼 | |
|
最后更新时间:2004-12-30
辛苦了,不错
|
|
| 返回顶楼 | |
|
最后更新时间:2005-03-06
读 记录集合的时候 我 原来用List 现在 改成 Iterator 感觉特别慢.
大家都用什么 阿 ? [code:1]/** * 取记录集合 * @return Iterator * @param int position, int length */ public Iterator getInfos(int position, int length) throws Exception { Iterator iterator = null; String queryString = " select info from Info as info order by info.id desc"; Query query = getHibernateTemplate().createQuery(getSession(), queryString); //设置游标的起始点 query.setFirstResult(position); //设置游标的长度 query.setMaxResults(length); //记录生成 List list = query.list(); //把查询到的结果放入迭代器 iterator = list.iterator(); return iterator; } [/code:1] 这个怎么和我的不一样啊 ? 奇怪。 [code:1] //得到贴子列表 public List findBbsMains(final String bbsMains, final String arg1,final String arg2,final int pageNum, final int pageSize) { return getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session)throws HibernateException, SQLException { query = getHibernateTemplate().createQuery(session,"select count(*)" + bbsMains); query.setParameter(0, arg1, Hibernate.STRING); query.setParameter(1, arg2, Hibernate.STRING); if(!query.list().isEmpty()) totalCount = (Integer) query.list().get(0); //得到当前页的一个list集合 query = getHibernateTemplate().createQuery(session, bbsMains.toString()); query.setParameter(0, arg1, Hibernate.STRING); query.setParameter(1, arg2, Hibernate.STRING); if ( (pageSize != -1) && (pageNum != -1)) { query.setMaxResults(pageSize); query.setFirstResult(pageNum); } return query.list(); } }); }[/code:1] |
|
| 返回顶楼 | |
|
最后更新时间:2005-10-14
你的那段分页代码肯定会出错,你检查一下你的log,里面肯定会出现"unclosed connection,forgot to call close() on your session?"
|
|
| 返回顶楼 | |
|
最后更新时间:2005-10-14
请教两个问题
1。提到的审核功能起到什么作用? 只用auditing字段表示? 2。所有的hql都是用字符串连接,不怕类似sql注入的危险? |
|
| 返回顶楼 | |
|
最后更新时间:2005-11-10
梅 写道 读 记录集合的时候 我 原来用List 现在 改成 Iterator 感觉特别慢.大家都用什么 阿 ?
这个怎么和我的不一样啊 ? 奇怪。 [code:1] //得到贴子列表 public List findBbsMains(final String bbsMains, final String arg1,final String arg2,final int pageNum, final int pageSize) { return getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session)throws HibernateException, SQLException { query = getHibernateTemplate().createQuery(session,"select count(*)" + bbsMains); query.setParameter(0, arg1, Hibernate.STRING); query.setParameter(1, arg2, Hibernate.STRING); if(!query.list().isEmpty()) totalCount = (Integer) query.list().get(0); //得到当前页的一个list集合 query = getHibernateTemplate().createQuery(session, bbsMains.toString()); query.setParameter(0, arg1, Hibernate.STRING); query.setParameter(1, arg2, Hibernate.STRING); if ( (pageSize != -1) && (pageNum != -1)) { query.setMaxResults(pageSize); query.setFirstResult(pageNum); } return query.list(); } }); }[/code:1] iterator肯定比list遍历得快。我得到query 的方式和你不一样?不明白为什么你的回调中会包含getHibernateTemplate(),可以说说理由吗? [code:1] return getHibernateTemplate().executeFind(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Query query = session.createQuery(condition); int rowCount = ((Integer)session.iterate("select count(*)"+condition).next()).intValue(); query.setFirstResult(maxResults * firstResult); query.setMaxResults(maxResults); List list = query.list(); Pagination pagination = new Pagination(rowCount,firstResult,maxResults); pagination.setTempList(list); List returnList = new ArrayList(); returnList.add(pagination); return returnList; } }); [/code:1] |
|
| 返回顶楼 | |
|
最后更新时间:2005-11-10
都是重复的代码。呵呵
|
|
| 返回顶楼 | |
|
最后更新时间:2005-11-10
//得到当前页的一个list集合
query = getHibernateTemplate().createQuery(session, bbsMains.toString()); 我新建了个工程,发现上面getHibernateTemplate()后就没有createQuery(session, bbsMains.toString())这个方法,这是怎么回事?难道版本不同了? |
|
| 返回顶楼 | |













