getHibernateTemplate()方法

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;    
   
}
 

猜你喜欢

转载自88548886.iteye.com/blog/1540357