直接开撸 其中分别创建了数据源ADataSource、BDataSource和SqlSessionFactory:ASqlSessionFactory、BSqlSessionFactory以及JdbcTemplate和分开的事务管理ATranscationManagement、BTranscationManagement 启动项目,出现如下即配置成功 两个数据源各建表TESTA、TESTB(字段name,值分别为数据源A、数据源B)
假如存在数据源a和b一、配置文件配置数据源a和b:(这里使用的是springboot2.0+ 默认数据库连接池hikari)
spring: datasource: a: driver-class-name: oracle.jdbc.OracleDriver jdbc-url: username: password: pool-name: b: driver-class-name: oracle.jdbc.OracleDriver jdbc-url: username: password: pool-name:
二、采用分包的方式配置两个数据源,生成不同的数据源和SqlSessionFactory,且指定不同位置的maperr(接口和xml文件)
/** * @title 数据源a配置 * @discribtion * basePackages 指定mapper接口类路径 * sqlSessionFactoryRef 指定唯一一个SqlSessionFactory * nameGenerator 解决不同包但同名的mapper重名问题 * @vision V1.0 */ @Configuration @MapperScan(basePackages = { "com.app.dao.A.mapper"}, sqlSessionFactoryRef = "ASqlSessionFactory", sqlSessionTemplateRef = "ASqlSessionTemplate", nameGenerator = Application.SpringBeanNameGenerator.class) public class DBConfig_A { @Bean(name = "AJdbcTemplate") public JdbcTemplate jdbcTemplateStation(@Qualifier("ADataSource") DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean(name = "ADataSource") @ConfigurationProperties(prefix = "spring.datasource.a") public DataSource dataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "ATranscationManagement") public PlatformTransactionManager primaryTransactionManage(@Qualifier("ADataSource") DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Bean(name = "ASqlSessionFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("ADataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setDataSource(dataSource); factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/A/*.xml")); return factoryBean.getObject(); } @Bean(name = "ASqlSessionTemplate") public SqlSessionTemplate sqlSessionTemplateOne(@Qualifier("ASqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory); return template; } }
/** * @title 数据源b配置 */ @Configuration @MapperScan(basePackages = {"com.app.dao.B.mapper"}, sqlSessionFactoryRef = "BSqlSessionFactory", sqlSessionTemplateRef = "BSqlSessionTemplate", nameGenerator = Application.SpringBeanNameGenerator.class) public class DBConfig_B { @Bean(name = "BJdbcTemplate") public JdbcTemplate jdbcTemplateStation(@Qualifier("BDataSource") DataSource dataSource) { return new JdbcTemplate(dataSource); } @Bean(name = "BDataSource") @ConfigurationProperties(prefix = "spring.datasource.b") public DataSource dataSource() { return DataSourceBuilder.create().build(); } @Bean(name = "BTranscationManagement") public PlatformTransactionManager primaryTransactionManage(@Qualifier("BDataSource") DataSource dataSource) { return new DataSourceTransactionManager(dataSource); } @Bean(name = "BSqlSessionFactory") public SqlSessionFactory sqlSessionFactory(@Qualifier("BDataSource") DataSource dataSource) throws Exception { SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean(); factoryBean.setDataSource(dataSource); factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/B/*.xml")); return factoryBean.getObject(); } @Bean(name = "BSqlSessionTemplate") public SqlSessionTemplate sqlSessionTemplateOne(@Qualifier("BSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception { SqlSessionTemplate template = new SqlSessionTemplate(sqlSessionFactory); return template; } }
指定两个数据源对应mapper接口分别在com.app.dao.A.mapper和com.app.dao.B.mapper,mapper的xml文件分别在resource下mapper/A和mapper/B
测试
各建mapper:TestMapper 和 查询方法list
执行:
结果:
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算