问题描述:
最近用idea
通过mybatis
向数据库中插入数据遇到一个bug
,英文数据在数据库中都显示正常,但是中文数据都是乱码?,之前查找了资料,说是我的数据库没有设置成utf-8
的格式,或者数据库的表没有设置成utf-8
的格式,于是我就检查了它们的格式,但是还是出现乱码情况,所以现在说下我是怎么解决的。
/**
* 测试在数据库中插入
*/
@Test
public void test02(){
String config = "applicationContext.xml";
ApplicationContext ctx = new ClassPathXmlApplicationContext(config);
StudentDao studentDao = (StudentDao) ctx.getBean("studentDao");
//创建一个Student对象
Student student = new Student();
student.setId(1002);
student.setName("小芳");
student.setEmail("xiaofang@163.com");
student.setAge(27);
int num = studentDao.insertStudent(student);
System.out.println(num);
}
数据库显示
解决方法
其实解决这个问题的方法很简单,就是在我们连接数据库的时候都会去配置一个存储连接数据库信息的properties
文件,如:jdbcConfig.xml
,或者我们会直接在xml文件中写连接数据库的信息。如下图所示。
解决这个问题只需要在这串url后面加一个后缀:
?useUnicode=true&characterEncoding=utf8,
完整的url
示例如下:
jdbc.url=jdbc:mysql://localhost:3306/spring?useUnicode=true&characterEncoding=utf8
jdbc.user=root
jdbc.password=??????
加完之后,经过测试,显示正常
参考链接
https://blog.csdn.net/z418998824/article/details/106585659