posts - 0,  comments - 17,  trackbacks - 0
          引用"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è)置游標(biāo)的起始點
              query.setFirstResult(position);
              //設(shè)置游標(biāo)的長度
              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è)置游標(biāo)的起始點
              query.setFirstResult(position);
              //設(shè)置游標(biāo)的長度
              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è)置游標(biāo)的起始點
              query.setFirstResult(position);
              //設(shè)置游標(biāo)的長度
              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è)置游標(biāo)的起始點
              query.setFirstResult(position);
              //設(shè)置游標(biāo)的長度
              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è)置游標(biāo)的起始點
              query.setFirstResult(position);
              //設(shè)置游標(biāo)的長度
              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è)置游標(biāo)的起始點
              query.setFirstResult(position);
              //設(shè)置游標(biāo)的長度
              query.setMaxResults(length);
              //記錄生成
              List list = query.list();
              //把查詢到的結(jié)果放入迭代器
              iterator = list.iterator();
              return iterator;

            }

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

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

          留言簿

          隨筆檔案(1)

          文章分類(44)

          文章檔案(46)

          收藏夾(1)

          Adobe

          AOP

          API

          appServer

          BI

          c

          • c-free
          • codeblocks
          • codelite
          • CodeLite IDE 是一個強(qiáng)大的開源,跨平臺的 C/C++整合開發(fā)環(huán)境. 支持包括 Windows、Linux 和 Mac 系統(tǒng)下運行
          • codelite官網(wǎng)
          • dev-c++
          • Dev-C++是一個C&C++開發(fā)工具,它是一款自由軟件,遵守GPL協(xié)議。
          • GCC
          • GCC 原名為 GNU C 語言編譯器(GNU C Compiler),因為它原本只能處理 C語言。GCC 很快地擴(kuò)展,變得可處理 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原型設(shè)計

          w3c

          Wap

          webservice

          xml

          供應(yīng)鏈管理

          博客鏈接

          好網(wǎng)站

          工作流

          開源網(wǎng)

          招聘

          插件下載

          操作系統(tǒng)

          構(gòu)建可伸縮的系統(tǒng)

          構(gòu)建工具

          測試

          游戲

          源碼托管

          經(jīng)營

          資源

          金融/財務(wù)

          搜索

          •  

          最新評論

          主站蜘蛛池模板: 梁山县| 韩城市| 桃江县| 长葛市| 淮北市| 曲沃县| 巴南区| 隆德县| 靖西县| 巴东县| 方正县| 三门县| 滦平县| 和顺县| 洮南市| 马边| 拉萨市| 汝阳县| 巢湖市| 柳林县| 板桥市| 玉溪市| 高邮市| 甘泉县| 定远县| 万山特区| 德化县| 白朗县| 清苑县| 乐业县| 喀什市| 夏邑县| 达州市| 兖州市| 大足县| 永平县| 祥云县| 双流县| 仙桃市| 安化县| 永春县|