在这一年间,已经很久没用过mybatis来开发了,所以此时想回顾下mybatis
数据库结构
我是插入下面一条sql
insert into t_user values(null,'张三','123',23,'女')
然后我执行的时候,没料到的意外就出现了
这里显然是编码对应的不对,但我肯定在mysql配置过编码了
show VARIABLES LIKE '%char%';
如果还是什么拉丁文的话,可以按照以下方法配置,8.0开始默认是utf8了
set character_set_client = utf8;
set character_set_server = utf8;
set character_set_connection = utf8;
set character_set_database = utf8;
set character_set_results = utf8;
set collation_connection = utf8_general_ci;
set collation_database = utf8_general_ci;
set collation_server = utf8_general_ci;
接下来应该是java那里的排查了,虽然看日志是没啥问题
如果是这样的话,应该是连接配置方面的问题了
mybatis-config.xml如下
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--设置连接数据库的环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url"
value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!--引入映射文件-->
<mappers>
<mapper resource="mapper/UserMapper.xml"/>
</mappers>
</configuration>
结果被我逮到了,url那里没设置编码utf8!设置如下
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useUnicode=true&characterEncoding=UTF-8"/>
这样大功告成~