在做mybatis框架访问MySQL数据库时出现如下报错:
### Error querying database. Cause: java.sql.SQLException: Unknown initial character set index ‘255’ received from server. Initial client character set can be forced via the ‘characterEncoding’ property.
### The error may exist in com/itheima/mapper/CustomerMapper.xml
### The error may involve com.itheima.mapper.CustomerMapper.findCustomerById
### The error occurred while executing a query
### Cause: java.sql.SQLException: Unknown initial character set index ‘255’ received from server. Initial client character set can be forced via the ‘characterEncoding’ property.
db.properties文件中:
jdbc.driver=com.mysql.cj.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=utf8
jdbc.username=root
jdbc.password=123456
数据库配置:
<properties resource="db.properties" />
<!--1.配置环境 ,默认的环境id为mysql -->
<environments default="mysql">
<!--1.2.配置id为mysql的数据库环境 -->
<environment id="mysql">
<!-- 使用JDBC的事务管理 -->
<transactionManager type="JDBC" />
<!--数据库连接池 -->
<dataSource type="POOLED">
<!-- 数据库驱动 -->
<property name="driver" value="${jdbc.driver}" />
<!-- 连接数据库的url -->
<property name="url" value="${jdbc.url}" />
<!-- 连接数据库的用户名 -->
<property name="username" value="${jdbc.username}" />
<!-- 连接数据库的密码 -->
<property name="password" value="${jdbc.password}" />
</dataSource>
</environment>
</environments>
解决方法:
将db.properties文件中的useUnicode=true&characterEncoding=utf8
改为useUnicode=true&characterEncoding=utf8
如果直接将参数写到配置文件中则需要用&
,写在单独配置文件中则需要写成&
一个小BUG搞了好久,记一下,还有之前把配置文件中的jdbc.driver
写成jdbc:driver
>_< >_< 有被自己蠢到!!!