前言
博主近日在写springboot2.x(2.1.3)jdbc/jpa 多数据源的案例,运行代码时报错
jdbcUrl is required with driverClassName
原因
查阅了资料,发现还是springboot最细2.x版的原因
贴出两个关键配置:
application.yml:
spring:
datasource:
master:
username: root
password: 123456
url: jdbc:mysql://192.168.145.131:3306/test
driver-class-name: com.mysql.cj.jdbc.Driver
slave:
username: root
password: 123456
url: jdbc:mysql://192.168.145.131:3306/test2
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
properties:
hibernate:
hbm2ddl:
auto: update
config/DataSource:
@Primary
@Bean(name = "masterDataSource")
@Qualifier("masterDataSource")
@ConfigurationProperties(prefix="spring.datasource.master")
public DataSource masterDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "slaveDataSource")
@Qualifier("slaveDataSource")
@ConfigurationProperties(prefix="spring.datasource.slave")
public DataSource slaveDataSource() {
return DataSourceBuilder.create().build();
}
@Bean(name = "masterJdbcTemplate")
@Qualifier("masterJdbcTemplate")
public JdbcTemplate masterJdbcTemplate(@Qualifier("masterDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
@Bean(name = "slaveJdbcTemplate")
@Qualifier("slaveJdbcTemplate")
public JdbcTemplate slaveJdbcTemplate(@Qualifier("slaveDataSource") DataSource dataSource) {
return new JdbcTemplate(dataSource);
}
这样的配置在springboot之前运行完全没问题,但是springboot升级2.0后,必须要配置jdbc-url才可以或者采取一种转换的方式。
贴上官方解释文档:
https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#howto-configure-a-datasource
两种解决方案如下:
方案一
直接改application.yml
spring:
datasource:
master:
username: root
password: 123456
jdbc-url: jdbc:mysql://192.168.145.131:3306/test
driver-class-name: com.mysql.cj.jdbc.Driver
slave:
username: root
password: 123456
jdbc-url: jdbc:mysql://192.168.145.131:3306/test2
driver-class-name: com.mysql.cj.jdbc.Driver
jpa:
properties:
hibernate:
hbm2ddl:
auto: update
url改为jdbc-url即可。非常简单。
方案二
此方案折腾点,不过,这样配置文件至少不用动了
修改数据源配置文件
config/DataSource:
//master库
@Primary
@Bean(name = "masterDataSourceProperties")
@Qualifier("masterDataSourceProperties")
@ConfigurationProperties(prefix = "spring.datasource.master")
public DataSourceProperties masterDataSourceProperties() {
return new DataSourceProperties();
}
@Primary
@Bean(name = "masterDataSource")
@Qualifier("masterDataSource")
@ConfigurationProperties(prefix = "spring.datasource.master")
public DataSource masterDataSource(@Qualifier("masterDataSourceProperties") DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build();
}
//slave库
@Bean(name = "slaveDataSourceProperties")
@Qualifier("slaveDataSourceProperties")
@ConfigurationProperties(prefix = "spring.datasource.slave")
public DataSourceProperties slaveDataSourceProperties() {
return new DataSourceProperties();
}
@Bean(name = "slaveDataSource")
@Qualifier("slaveDataSource")
@ConfigurationProperties(prefix = "spring.datasource.slave")
public DataSource slaveDataSource(@Qualifier("slaveDataSourceProperties") DataSourceProperties dataSourceProperties) {
return dataSourceProperties.initializeDataSourceBuilder().build();
}
可以看出,我们对两个数据源分别使用了masterDataSourceProperties和slaveDataSourceProperties进行配置的转换。
小结
两种方式在我的项目中均有实现,有兴趣的可以pull下来看看
https://github.com/MrCoderStack/SpringBootDemo/tree/master/sb-jdbc-multidb
https://gitee.com/MrCoderStack/SpringBootDemo/tree/master/sb-jdbc-multidb
请关注我的订阅号

转载于:https://my.oschina.net/u/3066875/blog/3055192
分享到:
相关推荐
Java开发案例-springboot-32-整合sharding-jdbc-源代码+文档.rar Java开发案例-springboot-32-整合sharding-jdbc-源代码+文档.rar Java开发案例-springboot-32-整合sharding-jdbc-源代码+文档.rar Java开发案例-...
Java开发案例-springboot-33-整合sharding-jdbc和多数据源-源代码+文档.rar Java开发案例-springboot-33-整合sharding-jdbc和多数据源-源代码+文档.rar Java开发案例-springboot-33-整合sharding-jdbc和多数据源-源...
hive-jdbc-uber-2.6.5.0-292.jar DbVisualizer (as of version 9.5.5) Below is an example configuration using DbVisualizer: Open the Diver Manager dialog ("Tools" > "Driver Manager...") and hit the ...
com.huawei.gauss.jdbc.ZenithDriver-1.2.1.jar
├─SpringBoot-05-Data-jdbc.rar ├─SpringBoot-05-Data-jpa.rar ├─SpringBoot-05-Data-Mybatis.rar ├─SpringBoot-06-Runner.rar ├─SpringBoot-07-Starter.rar ├─SpringBoot-ThymeLeaf-Book.rar
sqlite-jdbc-3.36.0.3.jar 最新吧2021 8月底更新
<artifactId>sharding-jdbc-spring-boot-starter 对应版本号 ``` 2. 配置数据库连接:在application.properties或application.yml中配置数据库连接信息,包括数据库URL、用户名、密码等。 ```properties spring....
在处理数据库连接方面,Tomcat提供了一种高效且可管理的数据源实现,名为“tomcat-jdbc数据源”。这个数据源是Tomcat内建的一种连接池,它在性能和内存管理上比标准的Java JDBC连接池更优秀,尤其适用于高并发的Web...
【标题】"springboot-jdbc-mysql.zip" 涉及到的是一个使用SpringBoot框架、JDBC(Java Database Connectivity)以及MySQL数据库构建的简单应用项目。这个项目由开发环境IntelliJ IDEA(简称IDEA)支持,展示了如何在...
标题中的“hive-jdbc-uber-2.6.5.0-292.zip”指的是Hive JDBC驱动的Uber版本,版本号为2.6.5.0-292。Uber JAR是一种包含所有依赖的单一JAR文件,便于分发和使用,特别是对于连接工具如DataGrip这样的集成开发环境...
Hive连接的jar包——hive-jdbc-3.1.2-standalone.jar,使用数据库连接软件连接数据仓库时需要使用相应的驱动器驱动,希望对大家有所帮助
本项目“springboot-jdbc.zip”旨在演示如何将SpringBoot与Spring JDBC结合,以实现对Oracle数据库的高效连接和数据操作。 首先,让我们了解SpringBoot的核心特性:自动配置、内嵌Web服务器(如Tomcat)、健康检查...
本项目"springboot-jdbc-多数据源"则主要展示了如何在Spring Boot应用中实现多数据源的配置和使用,这对于大型系统中需要连接多个数据库的场景非常实用。 首先,让我们深入了解Spring Boot与JdbcTemplate的结合。...
spring-jdbc-3.2.4.RELEASE.jar spring-tx-3.2.4.RELEASE.jar spring-context-support-3.2.4.RELEASE.jar spring-orm-3.2.4.RELEASE.jar spring-jms-3.2.4.RELEASE.jar spring-expression-3.2.4.RELEASE.jar spring-...
hive连接驱动
Springboot-JDBC多库使用.md
hive-jdbc-2.1.0-standalone.jar
《SpringBoot、MyBatisPlus与Sharding-JDBC的集成应用深度解析》 在现代的互联网应用开发中,数据管理的高效性和可扩展性是关键因素。本项目"springboot-mybatisplus-shardingjdbc"正是一个针对这一需求的集成学习...
标题中的"**hive-jdbc-uber-2.6.5.0-292.jar**"是一个Uber(也称为Shaded)JAR文件,它集成了Hive JDBC驱动的所有依赖项。Uber JAR的目的是为了方便部署,因为它将所有必需的库合并到一个单一的文件中,避免了类路径...
这个jar包可以用于使用DateGrip连接Hive时添加jdbc驱动时使用。 详细的可以参考我的一篇教程《使用DataGrip连接Hive》