Spring框架中配置数据库(MySQL8.0),配置不对,会出现Could not get JDBC Connection

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&amp;useSSL=true&amp;serverTimezone=UTC"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
    </bean>

这样程序就会正常运行!!!

希望对初学者有用,尽自己微薄之力,有错误之处,还请提出建议。。。

公众号

希望大家多多关注,里面不定期发放干货
领取全套资料:回复关键字【666】
迈莫公众号

猜你喜欢

转载自blog.csdn.net/qq_41066066/article/details/87527344
今日推荐