记录bug并提示自己用
druid连接数据库错误
bug信息
严重: create connection SQLException, url: jdbc.mysql://localhost:3306/spring, errorCode 0, state null
分析
- 问题出现在 mybatis 原生使用没问题,spring整合mybatis时候出现。
- 先排查了依赖问题,网上部分人说的是mysql驱动依赖版本问题,此处并不是。
- 查看过mysql官方文档错误码,结果Error Code范围只有[1000-49999]
- 根据报错,大概率是Druid身上,尝试换c3p0连接池,直接复制的< property > 依赖配置
- 最后仔细对比连接池配置信息才看到低级错误!(jdbc:mysql而不是jdbc.mysql)
正确配置
<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/spring"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</bean>
Note:
自己经常搞混的两个配置
- driverClassName是类,所以是 com.mysql.cj.jdbc.Driver
- url是地址(都是:),所以可以是jdbc:mysql://localhost:3306/
- spring整合mybatis,需要三个依赖(重点:不能去掉mybatis依赖否则会找不到sqlSessionFactory这个类,感觉有点坑)
3.1 :mybatis
3.2 :mysql-connect-j
3.3 :mybatis-spring