SpringBoot之Oracle数据源的整合
1、依赖引入
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.18</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.18</version>
</dependency>
<dependency>
<groupId>com.oracle.ojdbc</groupId>
<artifactId>ojdbc8</artifactId>
<version>19.3.0.0</version>
</dependency>
2、application.properties文件配置属性
spring.datasource.jdbc-url=jdbc:oracle:thin:@//ip:port/servicename
spring.datasource.username=username
spring.datasource.password=password
spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
spring.datasource.max-active=20
spring.datasource.max-idle=8
spring.datasource.min-idle=8
spring.datasource.initial-size=10
3、DataSourceConfig
@Configuration
@MapperScan(basePackages={"com.qing.demo.dao"}, sqlSessionTemplateRef="sqlSessionTemplate")
public class DataSourceConfig{
@Bean("dataSource")
@ConfigurationProperties(prefix="spring.datasource")
public DataSource dataSouce(){
return DataSourceBuilder,create().build();
}
@Bean(name="sqlSessionFactory")
public SqlSessionFactory sqlSessionFactory(@Qualifier("dataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sqlSessionFactoryBean = new SqlSessionFactoryBean();
sqlSessionFactoryBean.setDataSource(dataSource);
try{
sqlSessionFactoryBean.setMapperLocations(
new PathMatchingResourcePatternResolver().getResources("calsspath:mappers/*xml")
);
}catch (IOException e){
e.printStackTrace();
}
SqlSessionFactory sqlSessionFactory = null;
try{
sqlSessionFactory = sqlSessionFactoryBean.getObject();
}catch (Exception e1){
e1.printStackTrace();
}
return sqlSessionFactory;
}
@Bean(name = "transactionManager")
public DataSourceTransactionManager orderTransactionManager(@Qualifier("dataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
@Bean(name = "sqlSessionTemplate")
public SqlSessionTemplate orderSqlSessionTemplate(@Qualifier("sqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
4、dao层样例
@Repository
public interface InfoDao {
int insert(Info info);
}
5、mapper.xml样例
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "mybatis-3-mapper.dtd">
<mapper namespace="com.qing.demo.dao.InfoDao" >
<insert id="insert" parameterType="com.qing.demo.entitys.Info" keyProperty="id" >
insert into "info" ("id","username", "date") values (#{id},#{username},#{date})
</insert>
</mapper>