问题:IDEA调试JDBC出错:com.alibaba.druid.support.logging.JakartaCommonsLoggingImpl.error create connection SQLException, url: jdbc:mysql://localhost:3306/springdb?serverTimezone=GMT+8, errorCode 1251, state 08004

方法一:

这个报错是因为jdbc.properties文件中,用了username命名,在dataSource中取值时会出错
在这里插入图片描述

(以上这种命名就是导致报错的原因)

所以解决办法就是不使用username,可以加个前缀,比如
在这里插入图片描述

额方法一无效 

方法二:

 <!--声明数据源DataSource,作用是连接数据库-->
    <bean id="myDataSource" class="com.alibaba.druid.pool.DruidDataSource"
          init-method="init" destroy-method="close">
        <!--set注入给DruidDataSource提供连接数据库信息-->
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/自己的数据库名?serverTimezone=UTC&amp;
                  useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false" /><!--${jdbc_url}-->
        <property name="username" value="用户名" /><!--${jdbc_user}-->
        <property name="password" value="自己的密码"/><!--${jdbc_password}-->
        <property name="maxActive" value="20" />
    </bean>

简言之就是

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${jdbc.driverClassName}"></property>
        <property name="url" value="${jdbc.url}"></property>
        <property name="username" value="${jdbc.username}"></property>
        <property name="password" value="${jdbc.password}"></property>
    </bean>

主要解决出错位置

  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://localhost:3306/自己的数据库名?serverTimezone=UTC&amp;
                  useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false" /><!--${jdbc_url}-->

jdbc.properties文件配置

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/数据库名?serverTimezone=UTC&amp
jdbc.username=用户
jdbc.password=密码

很多人如此便解决了但我任然没有解决

方法三:

Mysql5.0版本的对应配置:
driverClassName属性对应的值为com.mysql.jdbc.Driver

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url"
                  value="jdbc:mysql://localhost:3306/facemask?serverTimezone=UTC&amp;
                  useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false"/>
        <property name="username" value="****"/>
        <property name="password" value="****"/>
    </bean>

Mysql8.0+版本的对应配置:
driverClassName属性对应的值为com.mysql.cj.jdbc.Driver

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="com.mysql.cj.jdbc.Driver"/>
        <property name="url"
                  value="jdbc:mysql://localhost:3306/facemask?serverTimezone=UTC&amp;
                  useUnicode=true&amp;characterEncoding=UTF-8&amp;useSSL=false"/>
        <property name="username" value="****"/>
        <property name="password" value="****"/>
    </bean>

code问题解决了,又出现了新问题

Logo

更多推荐