Spring+iBatis多数据源的动态配置方案(转)
?
在仅使用ibatis时,多数据源简直就是梦魇,每多一个数据源就需要多一份sql-map-config配置文件。
?
采用spring的AbstractRoutingDataSource就可以简单的解决这个问题。
?
AbstractRoutingDataSource实现了javax.sql.DataSource接口,因此可以理解为一个虚拟的动态DataSource,在需要的时候根据上下文Context动态决定使用哪个数据源。
?
下面是一个完整的配置:
- package?com.xxx.xxx.dao.impl; ????import?java.util.HashMap; ?? import?java.util.List; ?? import?java.util.Map; ?? ??import?org.apache.log4j.Logger; ?? import?org.springframework.orm.ibatis.support.SqlMapClientDaoSupport; ?? ??import?com.xxx.xxx.vo.TestObj; ?? ??public?class?TestDAO?extends?SqlMapClientDaoSupport?implements?ITestDAO?{ ?? ??????static?Logger?log?=?Logger.getLogger(TestDAO.class); ?? ??????public?TestObj?getTestObj(String?objID)?throws?Exception?{ ?? ????????return?(TestObj)?getSqlMapClientTemplate().queryForObject("getTestObj",?objID); ?? ????} ??}??
?
?
本文来自eddysheng的博客:《基于spring和ibatis的多数据源切换方案》。