对 DAO 框架的初步构思

对 DAO 框架的初步构思

基础:

  1. 内置支持JDBC、Spring JDBC和MyBatis数据库访问 -- 抽象提供一致的使用接口

  2. 默认三种DAO代理对象访,支持XML动态配置

  3. 不依赖Spring

升级:

  1. 插件式连接池

  2. 插件式支持Spring

  3. 事务

  4. 多数据源配置


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. 事务


请大家对以上构思,提点建议或意见吧!

你可能感兴趣的:(对 DAO 框架的初步构思)