軟件藝術(shù)思考者  
          混沌,彷徨,立志,蓄勢...
          公告
          日歷
          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導航

          隨筆分類(86)

          隨筆檔案(85)

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

           
          ?
          引用"Spring"手冊上的話說: Hibernate+Spring顯然是天生的結(jié)合.

          下面是我用spring處理的一個HibernateDAO實例,可以看到,代碼量大大減少了.

          java代碼:?


          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
          */


          publicclass InfoDAOImpl extends HibernateDaoSupport implements IInfoDAO {
          ? /**
          ? ?* 構(gòu)造函數(shù)
          ? ?*/

          ? public InfoDAOImpl(){
          ??? super();
          ? }


          ? /**
          ? ?* 增加記錄
          ? ?* @param info Info
          ? ?*/

          ? publicvoid setInfo(Info info)throwsException{
          ??? getHibernateTemplate().save(info);
          ? }


          ? /**
          ? ?* 通過ID取得記錄
          ? ?* @param id String
          ? ?* @return Info
          ? ?*/

          ? public Info getInfoById(String id)throwsException{
          ??? Info info = (Info) getHibernateTemplate().load(Info.class, id);
          ??? return info;
          ? }


          ? /**
          ? ?* 修改記錄
          ? ?* @param Info info
          ? ?*/

          ? publicvoid modifyInfo(Info info)throwsException{
          ??? getHibernateTemplate().update(info);
          ? }


          ? /**
          ? ?* 刪除記錄
          ? ?* @param Info info
          ? ?*/

          ? publicvoid removeInfo(Info info)throwsException{
          ??? getHibernateTemplate().delete(info);
          ? }


          ? ////////////////////////////////////////////////////////
          ? /////??????????????????????????????????????????????? ///
          ? /////以下部份不帶審核功能????????????????????????????? ///
          ? /////??????????????????????????????????????????????? ///
          ? ////////////////////////////////////////////////////////

          ? /**
          ? ?* 取記錄總數(shù)
          ? ?* @return int
          ? ?*/

          ? publicint getInfosCount()throwsException{
          ??? int count = 0;
          ??? String queryString = "select count(*) from Info";
          ??? count = ((Integer) getHibernateTemplate().iterate(queryString).next()).
          ??????????? intValue();
          ??? return count;
          ? }


          ? /**
          ? ?* 取所有記錄集合
          ? ?* @return Iterator
          ? ?*/

          ? publicIterator getAllInfos()throwsException{
          ??? 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
          ? ?*/

          ? publicIterator getInfos(int position, int length)throwsException{
          ??? Iterator iterator = null;
          ??? String queryString = " select info from Info as info order by info.id desc";
          ??? Query query = getHibernateTemplate().createQuery(getSession(), queryString);
          ??? //設(shè)置游標的起始點
          ??? query.setFirstResult(position);
          ??? //設(shè)置游標的長度
          ??? query.setMaxResults(length);
          ??? //記錄生成
          ??? List list = query.list();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? return iterator;
          ? }


          ? /**
          ? ?* 取第一條記錄
          ? ?* @throws Exception
          ? ?* @return Station
          ? ?*/

          ? public Info getFirstInfo()throwsException{
          ??? 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();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? if(iterator.hasNext()){
          ????? info = (Info) iterator.next();
          ??? }
          ??? return info;
          ? }


          ? /**
          ? ?* 取最后一條記錄
          ? ?* @throws Exception
          ? ?* @return Station
          ? ?*/

          ? public Info getLastInfo()throwsException{
          ??? 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();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? if(iterator.hasNext()){
          ????? info = (Info) iterator.next();
          ??? }
          ??? return info;

          ? }


          ? ////////////////////////////////////////////////////////
          ? /////??????????????????????????????????????????????? ///
          ? ///// 以下部份表中要有特定字段才能?吩誦袪 牳鋈撕推笠禒 ? ?///
          ? /////??????????????????????????????????????????????? ///
          ? ////////////////////////////////////////////////////////

          ? /**
          ? ?* 取符合條件記錄總數(shù), [表中要有 isperson 字段]
          ? ?* @return int
          ? ?* @param int isPerson
          ? ?*/


          ? publicint getInfosCountByIsperson(int isPerson)throwsException{
          ??? 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
          ? ?*/


          ? publicIterator getAllInfosByIsperson(int isPerson)throwsException{
          ??? 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);
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? return iterator;
          ? }


          ? /**
          ? ?* 取符合條件記錄集合, 模糊查詢條件.[表中要有 isperson 字段]
          ? ?* @return Iterator
          ? ?* @param int isPerson,int position, int length
          ? ?*/


          ? publicIterator 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";
          ??? //創(chuàng)建查詢
          ??? Query query = getHibernateTemplate().createQuery(getSession(), queryString);
          ??? //設(shè)置游標的起始點
          ??? query.setFirstResult(position);
          ??? //設(shè)置游標的長度
          ??? query.setMaxResults(length);
          ??? //記錄生成
          ??? List list = query.list();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? return iterator;
          ? }


          ? ////////////////////////////////////////////////////////
          ? /////??????????????????????????????????????????????? ///
          ? ///// 以下部份表中要有特定字段才能?吩誦袪 ?查詢部份????? ///
          ? /////??????????????????????????????????????????????? ///
          ? ///////////////////////////////////////////////////////
          ? /**
          ? ?* 取符合條件記錄總數(shù), 模糊查詢條件.[表中要有 title 字段]
          ? ?* @return int
          ? ?* @param String text
          ? ?*/

          ? publicint getInfosCount(String text)throwsException{
          ??? 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
          ? ?*/


          ? publicIterator getAllInfos(String text)throwsException{
          ??? Iterator iterator = null;
          ??? String queryString =
          ??????? " select info from Info as info where info.title like '%" + text +
          ??????? "%'
          order by info.id desc";
          ??? //創(chuàng)建查詢
          ??? Query query = getHibernateTemplate().createQuery(getSession(), queryString);
          ??? //記錄生成
          ??? List list = query.list();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? return iterator;
          ? }


          ? /**
          ? ?* 取符合條件記錄集合, 模糊查詢條件.[表中要有 title 字段]
          ? ?* @return Iterator
          ? ?* @param String text,int position, int length
          ? ?*/

          ? publicIterator 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";

          ??? //創(chuàng)建查詢
          ??? Query query = getHibernateTemplate().createQuery(getSession(), queryString);
          ??? //設(shè)置游標的起始點
          ??? query.setFirstResult(position);
          ??? //設(shè)置游標的長度
          ??? query.setMaxResults(length);
          ??? //記錄生成
          ??? List list = query.list();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? return iterator;
          ? }


          ? ////////////////////////////////////////////////////////
          ? /////??????????????????????????????????????????????? ///
          ? ///// 以下部份表中要有特定字段才能?吩誦袪 犠⒉嵯喙貭 ??? ///
          ? /////??????????????????????????????????????????????? ///
          ? ////////////////////////////////////////////////////////

          ? /**
          ? ?* 取符合條件記錄總數(shù).[ 表中要有 registername 字段]
          ? ?* @return int
          ? ?* @param String text
          ? ?*/

          ? publicint getInfosCountByRegisterName(String registerName)throwsException{
          ??? 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)throwsException{
          ??? Iterator iterator = null;
          ??? Info info = null;
          ??? String queryString =
          ??????? " select info from Info as info where info.registername='" +
          ??????? registerName + "'
          order by info.id desc";
          ??? //創(chuàng)建查詢
          ??? Query query = getHibernateTemplate().createQuery(getSession(), queryString);
          ??? //記錄生成
          ??? List list = query.list();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? if(iterator.hasNext()){
          ????? info = (Info) iterator.next();
          ??? }
          ??? return info;
          ? }


          ? /**
          ? ?* 通過注冊名取得所有記錄集合.[表中要有 registername字段]
          ? ?* @param registername String
          ? ?* @return Iterator
          ? ?*/

          ? publicIterator 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";
          ??? //創(chuàng)建查詢
          ??? Query query = getHibernateTemplate().createQuery(getSession(), queryString);
          ??? //記錄生成
          ??? List list = query.list();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? return iterator;
          ? }


          ? /**
          ? ?* 通過注冊名取得記錄列表.[表中要有 registername字段]
          ? ?* @param registername String
          ? ?* @return Iterator
          ? ?*/

          ? publicIterator getInfosByRegisterName(String registerName, int position,
          ??????????????????????????????????????? ?int length)throwsException{
          ??? Iterator iterator = null;
          ??? String queryString =
          ??????? " select info from Info as info where info.registername='" +
          ??????? registerName + "'
          order by info.id desc";
          ??? //創(chuàng)建查詢
          ??? Query query = getHibernateTemplate().createQuery(getSession(), queryString);
          ??? //設(shè)置游標的起始點
          ??? query.setFirstResult(position);
          ??? //設(shè)置游標的長度
          ??? query.setMaxResults(length);
          ??? //記錄生成
          ??? List list = query.list();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? return iterator;
          ? }


          ? ////////////////////////////////////////////////////////
          ? /////??????????????????????????????????????????????? ///
          ? ///// 以下部份表中要有特定字段才能?吩誦袪 ? 犑饜桶嬋闋 ? ?///
          ? /////??????????????????????????????????????????????? ///
          ? ////////////////////////////////////////////////////////

          ? /**
          ? ?* 取記錄總數(shù).[ 表中要有 board_id 字段]
          ? ?* @return int
          ? ?* @param String boardId
          ? ?*/

          ? publicint getInfosCountByBoard(String boardId)throwsException{
          ??? 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
          ? ?*/

          ? publicIterator getAllInfosByBoard(String boardId)throwsException{
          ??? Iterator iterator = null;
          ??? String queryString = " select info from Info as info where info.boardId='" +
          ??????????????????????? ?boardId + "'
          order by info.id desc";
          ??? //創(chuàng)建查詢
          ??? Query query = getHibernateTemplate().createQuery(getSession(), queryString);
          ??? //記錄生成
          ??? List list = query.list();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? return iterator;
          ? }


          ? /**
          ? ?* 通過版塊名取得記錄列表.[表中要有 board_id字段]
          ? ?* @param BoardId String
          ? ?* @return Iterator
          ? ?*/

          ? publicIterator 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";

          ??? //創(chuàng)建查詢
          ??? Query query = getHibernateTemplate().createQuery(getSession(), queryString);
          ??? //設(shè)置游標的起始點
          ??? query.setFirstResult(position);
          ??? //設(shè)置游標的長度
          ??? query.setMaxResults(length);
          ??? //記錄生成
          ??? List list = query.list();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();

          ??? return iterator;

          ? }


          ? /**
          ? ?* 取符合條件記錄總數(shù).[ 表中要有 board_id 字段,title]? 模糊查詢title
          ? ?* @return int
          ? ?* @param String boardId ,String text
          ? ?*/

          ? publicint getInfosCountByBoard(String boardId, String text)throwsException{
          ??? 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
          ? ?*/

          ? publicIterator getInfosByBoard(String boardId, int position, int length,
          ????????????????????????????????? String text)throwsException{
          ??? 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";

          ??? //創(chuàng)建查詢
          ??? Query query = getHibernateTemplate().createQuery(getSession(), queryString);
          ??? //設(shè)置游標的起始點
          ??? query.setFirstResult(position);
          ??? //設(shè)置游標的長度
          ??? query.setMaxResults(length);
          ??? //記錄生成
          ??? List list = query.list();
          ??? //把查詢到的結(jié)果放入迭代器
          ??? iterator = list.iterator();
          ??? return iterator;

          ? }


          ? ////////////////////////////////////////////////////////
          ? /////??????????????????????????????????????????????? ///
          ? /////以下部份帶有審核功能????????????????????????????? ///
          ? /////??????????????????????????????????????????????? ///
          ? ////////////////////////////////////////////////////////

          ? /**
          ? ?* 取記錄總數(shù)
          ? ?* @return int
          ? ?* @param int isAuditing
          ? ?*/

          ? publicint getInfosCount(int isAuditing)throwsException{
          ???
          posted on 2006-07-25 11:23 智者無疆 閱讀(624) 評論(0)  編輯  收藏 所屬分類: about hibernateabout spring
           
          Copyright © 智者無疆 Powered by: 博客園 模板提供:滬江博客


             觀音菩薩贊

          主站蜘蛛池模板: 松溪县| 苍南县| 夏河县| 乾安县| 广灵县| 天柱县| 方城县| 深圳市| 桂东县| 仙游县| 永德县| 周宁县| 安福县| 大城县| 和龙市| 青河县| 美姑县| 安达市| 屏东县| 巴东县| 铜鼓县| 罗平县| 西乌珠穆沁旗| 宝坻区| 尉氏县| 黄龙县| 克山县| 泉州市| 绥中县| 普兰县| 孟村| 新泰市| 莱芜市| 菏泽市| 泰州市| 蕲春县| 镇江市| 西盟| 凯里市| 湖南省| 库伦旗|