jdbc odbc dao ADO

JDBC應用程序接口是JAVA程序語言內針對數據存取所涉及的程序開發接口,其內部是由許多類與接口構成。而ODBC則是由C語言來開發的。

--------------------------------------------------------------------------------

訪問接口    易用性  運行性能  可擴展性  突出特點     能否訪問非關係數據源  技術層次
--------------------------------------------------------------------------------

ODBC        差      較高      差       可進行底層控制           否        底層

--------------------------------------------------------------------------------
MFC ODBC    好                一般     通用標準,應用廣泛       否        高層
--------------------------------------------------------------------------------
MFC DAO     好      較高      一般     訪問JET性能最好          能        高層
--------------------------------------------------------------------------------
OLE DB      較難    高        好       可訪問非關係DB           能        底層
--------------------------------------------------------------------------------
ADO         最好    高        好    可訪問非關係,有多種編程接口 能        高層
--------------------------------------------------------------------------------

--------------------------------------------------------------------------------


演進路標(從早到晚):ODBC——OLE DB——DAO——RDO——ADO;


OSI模型層次看(非絕對,部分有交叉):最底層數據源——ODBC——OLE DB——RDO、DAO、ADO——應用程序。


 什麼是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類中去...

 public class DAOFactory {
  private static final SessionFactory sessionFacotory;
  // 定義一個TrheadLocal .
  static Session currentSession().....
  public UserDao getUserDAO() { return new UserDaoImpl(sesssion);}
  pulbic OtherDao getOtherDAO() { return new OtherDaoImpl(session);}
  ......
  }

  public interface UserDao {
  public insertUser(FormBean)
  public updateUser(FormBean);
  }
  然後就實現DAO的接口: (Struts的FormBean...VO來的..)
  public class 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:
  public class UserPO {
  String firstname, lastname, password..........
  }



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章