多数据源时无法通过url自动识别Driver 导致错误
com.alibaba.druid.pool.DruidDataSource.init(DruidDataSource.java:865)
init datasource error, url: jdbc:sqlite:/data/testing_sqlite.db
java.sql.SQLException: connect error, url jdbc:sqlite:/data/testing_sqlite.db, driverClass org.h2.Driver
9条答案
按热度按时间uyhoqukh1#
用的什么版本的druid starter
7fyelxc52#
找到原因了,下个版本修复。
gev0vcfq3#
不过这样处理会带来一个小问题
spring.datasource.driver-class-name
将无效比如下面的配置没有使用到配置的错误驱动
只能通过以下配置才生效
应该这么改 DruidDataSourceWrapper
5n0oy7gb4#
不用了,直接在DruidDataSource初始化(init方法)的时候再进行推断就解决了,
this.driverClass = JdbcUtils.getDriverClassName(this.jdbcUrl);
,https://github.com/alibaba/druid/blob/master/src/main/java/com/alibaba/druid/pool/DruidDataSource.java#L809放弃使用Spring 的 driverClassName 推断,使用Druid自身的。
fae0ux8s5#
我的意思不是自动推断, 而是我要手动设置
spring.datasource.driver-class-name
的时候将会不起作用所以这么改可以避免
uajslkp66#
Url和driverClassName中的数据库类型不一致,这样配是不是有问题?
lyr7nygr7#
不同版本的驱动jar包也不一样呀,没明白怎么有这种场景呢
pxiryf3j8#
spring.datasource.driver-class-name
是否有效,测试结果只有
spring.datasource.druid.driver-class-name
才能覆盖自动检测。META-INF\services\java.sql.Driver
里的内容不同才说的,比如mysql-connector-java-6.0.6.jar是com.mysql.cj.jdbc.Driver
不过这个不影响因为com.mysql.jdbc.Driver
又继承了它。sqserrrh9#
哪个版本得到修复呢