posts - 0,  comments - 17,  trackbacks - 0
          引用"Spring"手冊上的話說: Hibernate+Spring顯然是天生的結合.

          下面是我用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 {
            /**
             * 構造函數
             */

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


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

            /**
             * 取記錄總數
             * @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);
              //設置游標的起始點
              query.setFirstResult(position);
              //設置游標的長度
              query.setMaxResults(length);
              //記錄生成
              List list = query.list();
              //把查詢到的結果放入迭代器
              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();
              //把查詢到的結果放入迭代器
              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();
              //把查詢到的結果放入迭代器
              iterator = list.iterator();
              if(iterator.hasNext()){
                info = (Info) iterator.next();
              }
              return info;

            }


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

            /**
             * 取符合條件記錄總數, [表中要有 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);
              //把查詢到的結果放入迭代器
              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";
              //創建查詢
              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
             */

            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";
              //創建查詢
              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
             */

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

              //創建查詢
              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
             */

            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";
              //創建查詢
              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
             */

            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";
              //創建查詢
              Query query = getHibernateTemplate().createQuery(getSession(), queryString);
              //記錄生成
              List list = query.list();
              //把查詢到的結果放入迭代器
              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";
              //創建查詢
              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
             */

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

              //創建查詢
              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
             */

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

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

            }

          posted on 2008-02-27 15:44 xyz 閱讀(419) 評論(0)  編輯  收藏 所屬分類: 網絡文摘

          <2025年6月>
          25262728293031
          1234567
          891011121314
          15161718192021
          22232425262728
          293012345

          留言簿

          隨筆檔案(1)

          文章分類(44)

          文章檔案(46)

          收藏夾(1)

          Adobe

          AOP

          API

          appServer

          BI

          c

          • c-free
          • codeblocks
          • codelite
          • CodeLite IDE 是一個強大的開源,跨平臺的 C/C++整合開發環境. 支持包括 Windows、Linux 和 Mac 系統下運行
          • codelite官網
          • dev-c++
          • Dev-C++是一個C&C++開發工具,它是一款自由軟件,遵守GPL協議。
          • GCC
          • GCC 原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C語言。GCC 很快地擴展,變得可處理 C++。之后也變得可處理 Fortran、Pascal、Objective-C、Java, 以及 Ada 與其他語言。

          Cache

          CMS

          DB

          eclipse

          FreeMarker

          hibernate

          html5

          ibatis

          java

          jquery

          js

          json

          Linux

          Log

          mail server

          mobile

          mysql

          oauth

          openID

          other

          PHP

          portal

          report

          Scheduler

          schema

          Security

          SOA

          spring

          struts

          UI原型設計

          w3c

          Wap

          webservice

          xml

          供應鏈管理

          博客鏈接

          好網站

          工作流

          開源網

          招聘

          插件下載

          操作系統

          構建可伸縮的系統

          構建工具

          測試

          • IETest
          • IE官網
          • OpenSTA
          • Siege
          • Siege是一個壓力測試和評測工具,設計用于WEB開發這評估應用在壓力下的承受能力

          游戲

          源碼托管

          經營

          資源

          金融/財務

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 洪洞县| 蕲春县| 长泰县| 惠安县| 平阴县| 衡南县| 灵璧县| 清远市| 舒城县| 九龙坡区| 侯马市| 莆田市| 嘉祥县| 营山县| 商南县| 施秉县| 正安县| 什邡市| 南溪县| 诸城市| 磴口县| 体育| 新宾| 谢通门县| 黄陵县| 溆浦县| 萝北县| 凤翔县| 阜新市| 佛坪县| 呼和浩特市| 汽车| 南康市| 岳池县| 探索| 五常市| 象山县| 韶关市| 汕头市| 衡阳市| 龙山县|