步骤:
1、配置文件 application.yml
# MySQL 数据库配置
spring:
datasource:
mysql:
url: jdbc:mysql://localhost:3306/point?useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: root
driver-class-name: com.mysql.cj.jdbc.Driver
# Oracle 数据库配置
oracle:
url: jdbc:oracle:thin:@192.168.255.9:1521:sys
username: root
password: root
driver-class-name: oracle.jdbc.driver.OracleDriver
# Druid 配置
type: com.alibaba.druid.pool.DruidDataSource
2、创建配置类DataSourceConfig,配置两个数据源,分别用于MySQL和Oracle
@Configuration
public class DataSourceConfig {
// MySQL 数据源配置
@Bean(name = "mysqlDataSource")
@ConfigurationProperties(prefix = "spring.datasource.mysql")
public DataSource mysqlDataSource() {
return new DruidDataSource();
}
// Oracle 数据源配置
@Bean(name = "oracleDataSource")
@ConfigurationProperties(prefix = "spring.datasource.oracle")
public DataSource oracleDataSource() {
return new DruidDataSource();
}
}
3、创建MyBatis 的配置类和 SQL 会话工厂:MyBatisMySQLConfig,用于连接mysql
@Configuration
@MapperScan(basePackages = "com.hjt.point.twoDB.mapper.mysql", sqlSessionFactoryRef = "mysqlSqlSessionFactory")
//com.hjt.point.twoDB.mapper.mysql mysql的mapper接口的包地址
public class MyBatisMySQLConfig {
@Bean//mysqlDataSource 传入指定的mysql数据源
public SqlSessionFactory mysqlSqlSessionFactory(@Qualifier("mysqlDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
//classpath:mapper/mysql/*.xml mysql的xml文件的位置
factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/mysql/*.xml"));
return factoryBean.getObject();
}
}
4、创建MyBatis 的配置类和 SQL 会话工厂:MyBatisOracleConfig,用于连接Oracle
@Configuration
@MapperScan(basePackages = "com.hjt.point.twoDB.mapper.oracle", sqlSessionFactoryRef = "oracleSqlSessionFactory")
//com.hjt.point.twoDB.mapper.oracle oracle的mapper接口的包地址
public class MyBatisOracleConfig {
@Bean//oracleDataSource 传入指定的oracle数据源
public SqlSessionFactory oracleSqlSessionFactory(@Qualifier("oracleDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean factoryBean = new SqlSessionFactoryBean();
factoryBean.setDataSource(dataSource);
//classpath:mapper/oracle/*.xml oracle的xml文件的位置
factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/oracle/*.xml"));
return factoryBean.getObject();
}
}
5、在对应的mapper接口位置,XML位置写对应逻辑代码进行开发,目录结构如下