Dict.CN 在線詞典, 英語學習, 在線翻譯

          都市淘沙者

          荔枝FM Everyone can be host

          統計

          留言簿(23)

          積分與排名

          優秀學習網站

          友情連接

          閱讀排行榜

          評論排行榜

          淺談DAO(轉載)

          ?
          http://blog.csdn.net/paddyhuang/archive/2004/11/24/193905.aspx
          什么是DAO
          DAO是Data Access Object數據訪問接口...
          數據訪問..故明思異就是與數據庫打交道...
          是夾在業務邏輯與數據庫資源中間...



          DAO的功能:

          1. DAO用來封裝Data Source的..就比如,Connection conn = DAOFacotry.createConnection()..
          就可以把Driver. URL. username, passpword這一些放在DAO中
          以后要更改數據庫的類型.比如要把MSSQL換成Oracle的話..只需要更改DAOFacory里面的getConnection()里面的Driver.URL.之類的..
          2. DAO也是把對數據庫的操作(比如最基本的CRUD操作)全部封裝在里面..
          比如說你要你要插入一個新的用戶..那么.在DAO中我們只需要提供一個insertUser(User user)這一個方法就可以了..具體的操作是在DAO中實現的...
          那么對于要調用DAO的時候.我們只要知道insertUser(User)是用來插入一個新的用戶...而不需要知道是如何實現的..


          一般 DAO是與Abstract Factory模式一起來用的...

          Factory來建立數據庫和定位具體的DAO(比如說是UserDao..CustomerDao..)..一般將getConnection設置為static..也可以把HibernateSessionFactory這一個公共類放在這一AbstractFactory類中去...

          publicclass DAOFactory {
          privatestaticfinal SessionFactory sessionFacotory;
          // 定義一個TrheadLocal .
          static Session currentSession().....
          public UserDao getUserDAO() { returnnew UserDaoImpl(sesssion);}
          pulbic OtherDao getOtherDAO() { returnnew OtherDaoImpl(session);}
          ......
          }


          publicinterface UserDao {
          public insertUser(FormBean)
          public updateUser(FormBean);
          }

          然后就實現DAO的接口: (Struts的FormBean...VO來的..)

          publicclass UserDaoImpl implements UserDao {
          private Session session;
          public UserDaoImpl(Session session){
          this.session = session;
          }...
          public insertUser(FormBean) {
          ..
          //..
          session.save(UserPO);
          ..
          //..
          return FormBean;
          }
          public FormBean updateUser(FormBean) {
          ..
          //..
          session.update(UserPO);
          ..
          //..
          return FormBean;
          }
          }

          最后定義你的PO:
          publicclass UserPO {
          String firstname, lastname, password..........
          }

          posted on 2006-04-26 16:43 都市淘沙者 閱讀(369) 評論(0)  編輯  收藏 所屬分類: Java Basic/Lucene/開源資料

          主站蜘蛛池模板: 精河县| 淳安县| 郓城县| 绿春县| 莒南县| 柳林县| 东乡| 缙云县| 井研县| 敦化市| 天门市| 隆德县| 陵川县| 舟山市| 上犹县| 泉州市| 伊春市| 沧源| 江孜县| 洪江市| 肥西县| 门源| 南江县| 陆河县| 黄浦区| 赤峰市| 犍为县| 龙井市| 青川县| 西乌珠穆沁旗| 蒙自县| 荆州市| 同心县| 通化市| 县级市| 滦南县| 富锦市| 潍坊市| 鹤壁市| 三原县| 罗平县|