SpringBoot整合Mybatis多数据源
来源:互联网 发布:网络公司简介怎么写 编辑:程序博客网 时间:2024/06/14 01:59
本文利用MyBatis-Spring-Boot-Starter整合springboot和mybatis,无xml配置,实现多数据源配置。官方文档参考
以下示例代码:
1、数据源1 。指明project.demo.mod_user包下的mappers将使用sqlSessionFactory_mysql1。
@Configuration@ConfigurationProperties(locations = "classpath:server.yml",prefix = "mybatis.mysql1")@MapperScan(sqlSessionFactoryRef = "sqlSessionFactory_mysql1", basePackages = {"project.demo.mod_user"})public class DataSourceMysql1Conf { private String url; private String username; private String password; @Bean(name = "dataSource_mysql1") @Primary public DataSource dataSource(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); dataSource.setTestWhileIdle(true); dataSource.setValidationQuery("select 1"); return dataSource; } /** * spring transaction mng */ @Bean(name = "transactionManager_mysql1") @Primary public DataSourceTransactionManager transactionManager(@Qualifier("dataSource_mysql1") DataSource rdsDataSource) { return new DataSourceTransactionManager(rdsDataSource); } /** * mybatis session factory */ @Bean(name = "sqlSessionFactory_mysql1") @Primary public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource_mysql1")DataSource rdsDataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(rdsDataSource); org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration(); configuration.setCacheEnabled(true); sessionFactory.setConfiguration(configuration); return sessionFactory.getObject(); } // setter/getter ...}
2、数据源2 。
@Configuration@ConfigurationProperties(locations = "classpath:server.yml",prefix = "mybatis.mysql2")@MapperScan(sqlSessionFactoryRef = "sqlSessionFactory_mysql2", basePackages = {"project.demo.mod_other"})public class DataSourceMysql2Conf { private String url; private String username; private String password; @Bean(name = "dataSource_mysql2") public DataSource dataSource2(){ DruidDataSource dataSource = new DruidDataSource(); dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl(url); dataSource.setUsername(username); dataSource.setPassword(password); dataSource.setTestWhileIdle(true); dataSource.setValidationQuery("select 1"); return dataSource; } /** * spring transaction mng */ @Bean(name = "transactionManager_mysql2") public DataSourceTransactionManager transactionManager(@Qualifier("dataSource_mysql2") DataSource rdsDataSource) { return new DataSourceTransactionManager(rdsDataSource); } @Bean(name = "sqlSessionFactory_mysql2") public SqlSessionFactory sqlSessionFactory2(@Qualifier("dataSource_mysql2")DataSource rdsDataSource) throws Exception { final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean(); sessionFactory.setDataSource(rdsDataSource); org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration(); configuration.setCacheEnabled(true); sessionFactory.setConfiguration(configuration); return sessionFactory.getObject(); } // setter/getter ...}
3、mapper
@Mapperpublic interface UserMapper { @Select("select * from user where id=#{param1}") User findById(int id);}
4、执行
@Component@Transactional(transactionManager = "transactionManager_mysql1",rollbackFor = Exception.class)public class InitRunner implements CommandLineRunner { @Autowired private UserMapper userMapper; @Override public void run(String... args) throws Exception { /** userMapper使用的是mysql1的数据源 */ System.out.println(userMapper.findById(10)); }}
5、依赖(gradle)
compile("org.springframework.boot:spring-boot-starter-web") compile 'org.mybatis:mybatis:3.4.2' compile 'mysql:mysql-connector-java:5.1.30' compile group: 'com.alibaba', name: 'druid', version: '1.0.26' compile group: 'org.mybatis.spring.boot', name: 'mybatis-spring-boot-starter', version: '1.2.0'
阅读全文
0 0
- SpringBoot整合Mybatis多数据源
- SpringBoot整合Mybatis多数据源
- Springboot整合Mybatis实现Druid多数据源
- springboot + mybatis + 多数据源
- SpringBoot+Mybatis多数据源
- springboot + mybatis + 多数据源
- springboot整合mybatis实现多数据库的切换
- SpringBoot整合多数据源xml方式
- springboot整合多数据源(四)
- SpringBoot、MyBatis配置多数据源
- springboot+mybatis配置多数据源
- springboot多数据源(mybatis)
- Springboot MyBatis多数据源切换
- springboot-mybatis—多数据源
- Springboot配置Mybatis多数据源
- springBoot+mybatis多数据源的配置
- Springboot MyBatis多数据源切换
- SpringBoot下配置Mybatis多数据源
- Cisco VPN client 在win10下使用 以及 安装Error 27850 与 连接Reason 442 错误解决
- C++/MFC-多线程
- 前端性能优化最佳实践
- kafka的安装配置跟基本使用
- Windows server 2012下搭建MySQL数据库并创建远程连接
- SpringBoot整合Mybatis多数据源
- 金蝶EAS·BOS,客户端操作添加进度栏,进度条
- CSU 1804 有向无环图 拓扑序DP
- mybatis学习:八
- 写博客画图工具,非学术
- 堆排序
- svn禁止删除权限和日志长度限制的脚本书写
- java中利用javax.xml.transform.Transformer将xml通过xsl样式转化成html
- 关于Tomcat容器加载的一些问题