欢迎来到天天文库
浏览记录
ID:34725756
大小:79.75 KB
页数:21页
时间:2019-03-10
《spring3整合mybatis3配置多数据源动态选择sqlsessionfactory》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一、摘要上两篇文章分别介绍了Spring3.3整合Hibernate3、MyBatis3.2配置多数据源/动态切换数据源方法 和 Spring3整合Hibernate3.5动态切换SessionFactory(切换数据库方言),这篇文章将介绍Spring整合Mybatis如何完成SqlSessionFactory的动态切换的。并且会简单的介绍下MyBatis整合Spring中的官方的相关代码。Spring整合MyBatis切换SqlSessionFactory有两种方法,第一、继承SqlSessionDaoSupport,重写获取SqlSessionFactory的方法。第二、继承S
2、qlSessionTemplate重写getSqlSessionFactory、getConfiguration和SqlSessionInterceptor这个拦截器。其中最为关键还是继承SqlSessionTemplate并重写里面的方法。而Spring整合MyBatis也有两种方式,一种是配置MapperFactoryBean,另一种则是利用MapperScannerConfigurer进行扫描接口或包完成对象的自动创建。相对来说后者更方便些。MapperFactoryBean继承了SqlSessionDaoSupport也就是动态切换SqlSessionFactory的第一种方
3、法,我们需要重写和实现SqlSessionDaoSupport方法,或者是继承MapperFactoryBean来重写覆盖相关方法。如果利用MapperScannerConfigurer的配置整合来切换SqlSessionFactory,那么我们就需要继承SqlSessionTemplate,重写上面提到的方法。在整合的配置中很多地方都是可以注入SqlSessionTemplate代替SqlSessionFactory的注入的。因为SqlSessionTemplate的创建也是需要注入SqlSessionFactory的。 二、实现代码1、继承SqlSessionTemplate重写
4、getSqlSessionFactory、getConfiguration和SqlSessionInterceptorpackagecom.hoo.framework.mybatis.support; importstaticjava.lang.reflect.Proxy.newProxyInstance;importstaticorg.apache.ibatis.reflection.ExceptionUtil.unwrapThrowable;importstaticorg.mybatis.spring.SqlSessionUtils.closeSqlSession;imports
5、taticorg.mybatis.spring.SqlSessionUtils.getSqlSession;importstaticorg.mybatis.spring.SqlSessionUtils.isSqlSessionTransactional; importjava.lang.reflect.InvocationHandler;importjava.lang.reflect.Method;importjava.sql.Connection;importjava.util.List;importjava.util.Map; importorg.apache.ibatis.ex
6、ceptions.PersistenceException;importorg.apache.ibatis.executor.BatchResult;importorg.apache.ibatis.session.Configuration;importorg.apache.ibatis.session.ExecutorType;importorg.apache.ibatis.session.ResultHandler;importorg.apache.ibatis.session.RowBounds;importorg.apache.ibatis.session.SqlSessio
7、n;importorg.apache.ibatis.session.SqlSessionFactory;importorg.mybatis.spring.MyBatisExceptionTranslator;importorg.mybatis.spring.SqlSessionTemplate;importorg.springframework.dao.support.PersistenceExceptionTranslator;importorg.spr
此文档下载收益归作者所有