- 首先导入Oracle和Mysql对应的maven依赖
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.5.7</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>3.4.4</version>
</dependency>
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
<dependency>
<groupId>cn.easyproject</groupId>
<artifactId>orai18n</artifactId>
<version>12.1.0.2.0</version>
</dependency>
<dependency>
- 设置springboot中的application.yml配置数据库连接信息
oracle:
datasource:
driver-class-name: oracle.jdbc.OracleDriver
url: jdbc:oracle:thin:@192.168.1.33:1521:orcl
username: username
password: password
mysql:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://120.24.33.161:3306/db?serverTimezone=GMT&useUnicode=true&characterEncoding=utf8
username: root
password: password
- 创建实体类读取配置文件中的数据库配置
@Data
public class DataSourceInfo {
private String driverClassName;
private String url;
private String username;
private String password;
}
- 编写Oracle数据源,并扫描oracle中的通用mapper所存放的路径
@Configuration
@MapperScan(value = "cn.wszdhbc.oracle.mapper",sqlSessionFactoryRef = "oracleSqlSessionFactory")
public class OracleDataSource {
@Resource
@Qualifier("getOracleDataSource")
private DataSourceInfo dataSourceInfo;
@Bean("getOracleDataSource")
@ConfigurationProperties(prefix = "oracle.datasource")
public DataSourceInfo getOracleDataSource(){
return new DataSourceInfo();
}
@Bean("dataSource")
public HikariDataSource createDataSource() {
HikariDataSource dataSource = new HikariDataSource();
dataSource.setDriverClassName(dataSourceInfo.getDriverClassName());
dataSource.setJdbcUrl(dataSourceInfo.getUrl());
dataSource.setUsername(dataSourceInfo.getUsername());
dataSource.setPassword(dataSourceInfo.getPassword());
return dataSource;
}
@Bean("oracleSqlSessionFactory")
public SqlSessionFactory oracleSqlSerssionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
final SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
return sessionFactoryBean.getObject();
}
@Bean
public SqlSessionTemplate createSqlSessionTemplate(@Qualifier("oracleSqlSessionFactory") SqlSessionFactory factory){
return new SqlSessionTemplate(factory);
}
@Bean
public DataSourceTransactionManager createTransectionManager(@Qualifier("dataSource")DataSource dataSource){
return new DataSourceTransactionManager(dataSource);
}
}
- 编写Mysql数据源,并扫描mysql中的通用mapper路径
@Configuration
@MapperScan(value = "cn.wszdhbc.mysql.mapper",sqlSessionFactoryRef = "sqlSessionFactory")
public class MysqlDataSource {
@Resource
@Qualifier("createDataSourceInfo")
private DataSourceInfo dataSourceInfo;
@Bean("createDataSourceInfo")
@ConfigurationProperties(prefix = "mysql.datasource")
public DataSourceInfo createDataSourceInfo(){
return new DataSourceInfo();
}
@Bean("createDataSource")
public DataSource createDataSource(){
HikariDataSource dataSource = new HikariDataSource();
dataSource.setPassword(dataSourceInfo.getPassword());
dataSource.setUsername(dataSourceInfo.getUsername());
dataSource.setMaxLifetime(500000);
dataSource.setJdbcUrl(dataSourceInfo.getUrl());
dataSource.setDriverClassName(dataSourceInfo.getDriverClassName());
return dataSource;
}
@Bean("sqlSessionFactory")
public SqlSessionFactory createSqlSessionFactory(@Qualifier("createDataSource")DataSource dataSource) throws Exception {
final SqlSessionFactoryBean factory = new SqlSessionFactoryBean();
factory.setDataSource(dataSource);
return factory.getObject();
}
@Bean("mysqlSessionTemplate")
public SqlSessionTemplate createSqlSessionTemplate(@Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory){
return new SqlSessionTemplate(sqlSessionFactory);
}
}
- 到这里就可以和以往一样进行接下来的CRUD搬砖操作了