对 DAO 框架的初步构思
基础:
内置支持JDBC、Spring JDBC和MyBatis数据库访问 -- 抽象提供一致的使用接口
默认三种DAO代理对象访,支持XML动态配置
不依赖Spring
升级:
插件式连接池
插件式支持Spring
事务
多数据源配置
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. 事务
请大家对以上构思,提点建议或意见吧!
来源:oschina
链接:https://my.oschina.net/u/1391482/blog/652795