HibernateTemplate 的用途


2010-12-16 11:01:14|  分类: 默认分类|字号 订阅

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 Mr.xp 
@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;   
  
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值