spring boot oracle连接配置
2022-05-06 本文已影响0人
一介书生独醉江湖
# pom.xml
# 引入oracle,mybatis依赖
<!--oracle 依赖-->
<dependency>
<groupId>com.oracle.database.jdbc</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.4</version>
</dependency>
<!--oracle 依赖-->
<!--mybatis 依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.2.0</version>
</dependency>
<!--mybatis 依赖-->
一、方式一
# 第一种方式只修改application.yml文件;
# 如果只有一个数据源,那么直接使用这种方式即可;
spring:
datasource:
url: jdbc:oracle:thin:@//*.*.*.28:1521/orcl
driver-class-name: oracle.jdbc.driver.OracleDriver
username: your_user_name
password: your_user_password
二、方式二
# 第二种方式支持多数据源;
# 如果使用这种方式,yml文件稍微有点不一样;如下:
spring:
datasource:
fxdb:
jdbc-url: jdbc:oracle:thin:@//*.*.*.28:1521/orcl
username: your_user_name
password: your_user_password
driverClassName: oracle.jdbc.OracleDriver
# 创建一个配置类;
# 如果需要多数据源,创建多个 *DataSourceConfig,然后修改配置内的约定即可;
# 最后在yml文件中配置数据源(例如上面的 spring.datasource.fxdb);
package com.sawl.fxapi.config;
import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import javax.sql.DataSource;
/**
* @Author ds
* @Date 2022-05-06
*/
@Configuration
@MapperScan(basePackages = "com.sawl.fxapi.api.*.dao", sqlSessionTemplateRef = "fxJdbcTemplate")
public class FXDataSourceConfig {
@Bean(name = "fxDataSource")
@ConfigurationProperties(prefix="spring.datasource.fxdb")
public DataSource fxDataSource(){
return DataSourceBuilder.create().build();
}
@Bean(name = "fxJdbcFactory")
public SqlSessionFactory fxJdbcFactory(@Qualifier(value ="fxDataSource") DataSource dataSource) throws Exception {
MybatisSqlSessionFactoryBean bean = new MybatisSqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath*:mapper/fx/*.xml"));
return bean.getObject();
}
@Bean(name = "fxJdbcManager")
public DataSourceTransactionManager fxJdbcManager(@Qualifier(value = "fxDataSource") DataSource dataSource){
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "fxJdbcTemplate")
public SqlSessionTemplate fxJdbcTemplate(@Qualifier(value = "fxJdbcFactory") SqlSessionFactory sqlSessionFactory){
return new SqlSessionTemplate(sqlSessionFactory);
}
}