前言:
现时朋友们对“jdbc连接oracle数据库url”大致比较注意,姐妹们都想要分析一些“jdbc连接oracle数据库url”的相关文章。那么小编也在网摘上汇集了一些有关“jdbc连接oracle数据库url””的相关资讯,希望看官们能喜欢,大家一起来了解一下吧!说明
在SpringBoot项目中使用Mybatis访问数据库非常方便,同时也支持访问多个数据源,有一种实现方式是分包实现,就是将不同数据源生成的mybatis接口类、xml映射文件、pojo文件放到不同的package里面,以此实现互不干扰,独立使用的目的,下面分享一下我的使用经验。
多数据库连接配置
在yml文件中配置多个数据库连接:
spring: #mysql数据库配置 mysqldatasource: driver-class-name: com.mysql.jdbc.Driver # 本地库 url: jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false username: root password: mysql initialSize: 5 maxActive: 50 maxIdle: 10 minIdle: 1 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 1 from dual testWhileIdle: true testOnBorrow: true testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 50 # Oracle数据库配置 oracledatasource: driver-class-name: oracle.jdbc.OracleDriver url: jdbc:oracle:thin:@127.0.0.1:1521:orcl username: TEST password: TEST initialSize: 5 maxActive: 50 maxIdle: 10 minIdle: 1 maxWait: 60000 timeBetweenEvictionRunsMillis: 60000 minEvictableIdleTimeMillis: 300000 validationQuery: select 1 from dual testWhileIdle: true testOnBorrow: true testOnReturn: false poolPreparedStatements: true maxOpenPreparedStatements: 50
要给不同的数据源起不同的名字,比如mysql的数据源叫mysqldatasource,oracle的数据源叫oracledatasource。
配置多个数据源的连接文件
mysql数据源的配置文件MysqlDataSourceConfig:
//表示这个类是一个配置类@Configuration//配置mybatis接口类放置的地方@MapperScan(basePackages = "com.test.mapper", sqlSessionFactoryRef = "mysqlSqlSessionFactory")public class MysqlDataSourceConfig { //表示这个数据源是默认的数据源 @Primary //将这个对象放入Spring容器中 @Bean(name = "mysqlDBDataSource") //读取yml中的数据库配置参数,映射成为一个对象,prefix表示参数的前缀 @ConfigurationProperties(prefix="spring.mysqldatasource") //告诉自动加载配置的属性 public DataSource dataSource() { DruidDataSource ds=new DruidDataSource(); return ds; } @Bean(name = "mysqlSqlSessionFactory") // 表示这个数据源是默认数据源 @Primary // @Qualifier表示查找Spring容器中名字为mysqlDBDataSource的对象 public SqlSessionFactory mysqlSqlSessionFactory(@Qualifier("mysqlDBDataSource") DataSource datasource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(datasource); bean.setMapperLocations( // 设置mybatis的xml所在位置 new PathMatchingResourcePatternResolver().getResources("classpath*:mysqlmybatis/*.xml")); return bean.getObject(); } @Bean("mysqlSqlSessionTemplate") // 表示这个数据源是默认数据源 @Primary public SqlSessionTemplate mysqlsqlsessiontemplate( @Qualifier("mysqlSqlSessionFactory") SqlSessionFactory sessionfactory) { return new SqlSessionTemplate(sessionfactory); }}
oracle数据源的配置文件OracleDataSourceConfig:
//表示这个类是一个配置类@Configuration//配置mybatis接口类放置的地方@MapperScan(basePackages = "com.test.oraclemapper", sqlSessionFactoryRef = "oracleSqlSessionFactory")public class OracleDataSourceConfig { //将这个对象放入Spring容器中 @Bean(name = "oracleDataSource") //读取yml中的数据库配置参数,映射成为一个对象,prefix表示参数的前缀 @ConfigurationProperties(prefix="spring.oracledatasource") //告诉自动加载配置的属性 public DataSource sqlserverDataSource() { DruidDataSource ds=new DruidDataSource(); return ds; } @Bean(name = "oracleSqlSessionFactory") // @Qualifier表示查找Spring容器中名字为oracleDataSource的对象 public SqlSessionFactory oracleSqlSessionFactory(@Qualifier("oracleDataSource") DataSource datasource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(datasource); bean.setMapperLocations( // 设置mybatis的xml所在位置 new PathMatchingResourcePatternResolver().getResources("classpath*:oraclemybatis/*.xml")); return bean.getObject(); } @Bean("oracleSqlSessionTemplate") public SqlSessionTemplate oraclesqlsessiontemplate( @Qualifier("oracleSqlSessionFactory") SqlSessionFactory sessionfactory) { return new SqlSessionTemplate(sessionfactory); }}
其中,比较关键的一个配置就是@ConfigurationProperties(prefix="spring.mysqldatasource"),这个配置说的就是从yml文件里面找到对应数据源的配置信息:
操作不同的数据源
按照上面的配置将不同数据源生成的mybatis接口类、xml映射文件、pojo文件放到不同的package里面以后就可以直接用各自数据源的mapper接口对象来操作相应的数据库了。
@Autowired private OracleTableMapper oracleMapper; @Autowired private MysqlTableMapper mysqlMapper;注意事项
1、如果没有将不同数据源生成的mybatis接口类、xml映射文件、pojo文件放到完全独立的不同的package里面,而是放到了一个package下面,或者将一个数据源的相关文件放到了另一个数据源package下一级的package中,即使是分别配置了mybatis接口类的位置和xml映射文件的位置,也会导致数据库访问失败。
标签: #jdbc连接oracle数据库url