Spring框架中配置数据库(MySQL8.0)属性文件(文件名.properties),配置不对,会出现 Cause: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception: com.mysql.cj.exceptions.WrongArgumentException: Malformed database URL, failed to parse the connection string near ‘;useSSL=true&serverTimezone=UTC’.
当时候用spring连接数据库时,使用的是属性文件配置的,按照先前连接方式进行连接,以前用的是MySQL版本有点低,按照以前方式就可以正常连接,而换成了MySQL8.0以上版本,不仅连接方式有点出错,连连接字符串的都稍有点变化,所有我写了这篇博客,希望可以帮助初学者可以更快的解决错误,少走点弯路。。。
使用spring配置属性文件
1 在src目录下新建一个properties属性文件(db.properties)
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/usermanage?characterEncoding=utf8&useSSL=true&serverTimezone=UTC
jdbc.username=root
jdbc.password=feise5328
2 在spring配置文件中配置数据资源
<!--加载属性文件-->
<context:property-placeholder location="classpath:db.properties"></context:property-placeholder>
<!--数据资源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
~~<property name="url" value="${jdbc.url}"/>~~
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
配置字符串连接,如果使用value="${jdbc.url}"
如果这这样配置数据资源中的连接字符串,Tomcat启动时不会报任何错误,但你在往数据库提交数据时,你会发现报出资源找不到错误(500错误),
如下图:
因此,配置属性文件中的连接字符串时,不要使用这种方式,使用原生态方式,在value=“jdbc:mysql://localhost:3306/usermanage?characterEncoding=utf8&useSSL=true&serverTimezone=UTC”,可以正常运行。
<!--加载属性文件-->
<context:property-placeholder location="classpath:db.properties"></context:property-placeholder>
<!--数据资源-->
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driver}"/>
<property name="url" value="jdbc:mysql://localhost:3306/usermanage?characterEncoding=utf8&useSSL=true&serverTimezone=UTC"/>
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
</bean>
这样程序就会正常运行!!!
希望对初学者有用,尽自己微薄之力,有错误之处,还请提出建议。。。
公众号
希望大家多多关注,里面不定期发放干货
领取全套资料:回复关键字【666】