写代码的时候遇到一个奇怪的问题,查询数据的时候返回空。
import java.util.List;
@Mapper
public interface UserMapper {
List<User> selectUserByName(String name);
}
<select id="selectUserByName" resultType="User">
select * from t_user where name like concat('%',#{name},'%')
</select>
就是一个简单的模糊查询
数据库里面的数据
查询数据
@Test
void contextLoads() {
List<User> users = userMapper.selectUserByName("李");
System.out.println(users);
}
按道理查询结果应该会是数据库中的第一条数据
结果输出的是空
查看MySQL数据库的日志
发现模糊查询参数字符变成了问号
一通搜索后发现是字符编码问题
修改一下数据库url,加上参数characterEncoding=utf-8
url: jdbc:mysql://localhost:3306/db01?serverTimezone=UTC&characterEncoding=utf-8
就能查询出结果了
如果把characterEncoding=utf-8去掉的话,查询英文还是能出结果的