话不多说直接上代码
这里人大金仓的jar包是官网下载然后放入文件引入的!!!
<!--添加KingBase所需要的依赖-->
<dependency>
<groupId>com.kingbase</groupId>
<artifactId>kingbase8</artifactId>
<version>8.6.0</version>
<scope>system</scope>
<systemPath>${pom.basedir}/libs/kingbase8-8.6.0.jar</systemPath>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc7</artifactId>
<version>1.0</version>
</dependency>
配置文件如下
//oracle
spring.datasource.database1.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.database1.jdbc-url=jdbc:oracle:thin:@ip:1521:orcl
spring.datasource.database1.username=用户
spring.datasource.database1.password=密码
//人大金仓
spring.datasource.database2.driver-class-name=com.kingbase8.Driver
spring.datasource.database2.jdbc-url=jdbc:kingbase8://ip:端口/数据库
spring.datasource.database2.username=用户
spring.datasource.database2.password=密码
//xml位置个人理解只能引入单个位置
mybatis.mapper-locations=classpath:mybatis/mapper/*/*.xml
database1
@Configuration
@MapperScan(basePackages = "oracle,mapper位置(com.xxx.xxx.mapper.dao1)", sqlSessionTemplateRef = "sqlSessionTemplate1")
public class DatabaseConfig1 {
@Bean(name = "dataSource1")
@ConfigurationProperties(prefix = "spring.datasource.database1")
@Primary
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "sqlSessionFactory1")
@Primary
public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource1") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/oracl对应xml位置/*.xml"));
return bean.getObject();
}
@Bean(name = "transactionManager1")
@Primary
public DataSourceTransactionManager transactionManager(@Qualifier("dataSource1") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "sqlSessionTemplate1")
@Primary
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sqlSessionFactory1") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
database2
@Configuration
@MapperScan(basePackages = {"人大金仓,mapper位置(com.xxx.xxx.mapper.dao2)"}, sqlSessionTemplateRefr
= "sqlSessionTemplate2")
public class DatabaseConfig2 {
@Bean(name = "dataSource2")
@ConfigurationProperties(prefix = "spring.datasource.database2")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "sqlSessionFactory2")
public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource2") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mybatis/mapper/人大金仓对应xml位置/*.xml"));
return bean.getObject();
}
@Bean(name = "transactionManager2")
public DataSourceTransactionManager transactionManager(@Qualifier("dataSource2") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "sqlSessionTemplate2")
public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sqlSessionFactory2") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
配置完成后就是正常使用
controller+service
//controller
/*
测试人大金仓数据库
*/
@RequestMapping(value = "/****")
public Object ****(){
List<Map<String,Object>> list = checkService.****();
return list;
}
/*
测试oracle数据库
*/
@RequestMapping(value = "/****")
public Object ****(){
List<Map<String,Object>> list = checkService.****();
return list;
}
//service
List<Map<String,Object>> ****();
List<Map<String,Object>> ****();
ServiceImpl
@Autowired
oracle数据库定义的Mapper 别名;
@Autowired
人大金仓数据库定义的Mapper 别名;
@Override
public List<Map<String,Object>> 方法名(){
List<Map<String,Object>> list = oracle数据库定义的Mapper.****();
return list;
}
@Override
public List<Map<String,Object>> 方法名(){
List<Map<String,Object>> list = 人大金仓数据库定义的Mapper.****();
return list;
}
xml最简单就不多说了,很简单一个逻辑有问题欢迎指出来,谢谢