Hibernate 对Dao层的处理实例 有模糊查询和 分页 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; pTitle p pDescription p pCopyright Copyright (c) 2004p pCompany 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; }
getHibernateTemplate()方法
猜你喜欢
转载自88548886.iteye.com/blog/1540357
今日推荐
周排行