對 DAO 框架的初步構思

對 DAO 框架的初步構思數據庫

基礎:session

  1. 內置支持JDBC、Spring JDBC和MyBatis數據庫訪問 -- 抽象提供一致的使用接口mybatis

  2. 默認三種DAO代理對象訪,支持XML動態配置app

  3. 不依賴Spring
    框架

升級:spa

  1. 插件式鏈接池插件

  2. 插件式支持Spring代理

  3. 事務code

  4. 多數據源配置orm


1.內置支持JDBC、Spring JDBC和MyBatis數據庫訪問 -- 抽象提供一致的使用接口。

請看下面的代碼SessionMgr接口:

SessionMgr<> {

    ()()}

代碼中實現了簡單的數據庫操做會話的獲取。對外暴露提供統一的接口。JDBC,SpringJDBC和Mybatis各會話管理實現類實現該接口。

天然這塊還包括初始化,鏈接池,事務等工做。


2. XML動態配置

用戶確定說配置太麻煩了,那默認就是支持三種數據庫操做會話。

但確定會有獨鍾於其中一項的,好比Mybatis。請看下面一段XML配置:


  <!-- Session 管理器(可選) -->
  <!-- 能夠配置多個,不一樣的 Session 管理器可以使用不一樣的方式鏈接不一樣的數據庫 -->
  <database-session-managers>
     <!-- name - 名稱(必填),class - 管理器實現類(必填) -->
     <manager name="session-mgr-jdbc" class="org.fast.dao.jdbc.JDBCSessionMgr" />
     <manager name="session-mgr-mybatis" class="org.fast.dao.mybatis.MyBatisSessionMgr">
        <!-- 傳遞給 Session 管理器的初始化參數 -->
        <initialize-args>
           <!-- 第一個參數:Mapper接口包 -->
           <arg>vo\.mapper</arg>
           <!-- 第二個參數等 -->
           <arg></arg>
        </initialize-args>
     </manager>
  </database-session-managers>

但要考慮多數據源問題。。。 目前沒想好


3. plugin式支持

    a) 插件式支持Spring

       只要在Spring配置一個Bean:

<bean id="userDao" class="org.fast.dao.DAOFacadeProxy" factory-method="create">
  <constructor-arg value="dao.mybatis.UserDao"/>
</bean>

DAOFacadeProxy是DAO類建立代理對象,會自動代理到須要操做的

    b) 插件式支持鏈接池


4. 事務


請你們對以上構思,提點建議或意見吧!

相關文章
相關標籤/搜索