解决SpringBoot更新数据到MySQL乱码问题 - Go语言中文社区

解决SpringBoot更新数据到MySQL乱码问题


今天使用SpringBoot 1.4.2,往Mysql数据库插入数据,发现汉字都变成了?,通过下列步骤解决了这个问题。
1.首先怀疑是页面编码有问题,检查STS这里写图片描述
都是UTF8没有问题。
2.怀疑数据库没有采用UTF8编码。
这里写图片描述
DB也是UTF8格式,没有问题。
3.怀疑Hibernate连接字符串问题。
application.properties修改为通过utf8连接mysql,但是问题依然没有解决。

spring.datasource.url=jdbc:mysql://localhost:3306/byhieg?useUnicode=true&characterEncoding=utf8
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

spring.jpa.properties.hibernate.hbm2ddl.auto=update

multipart.maxFileSize: 10MB
multipart.maxRequestSize: 10MB

4.写一个测试代码,进行测试,看是否会出现乱码。
@RunWith(SpringRunner.class)
@SpringBootTest
public class ManageApplicationTests {
@Autowired
private UserRepository userRepository;

@Test
public void contextLoads() {
}

@Test  
public void testEntity() {  
    User user = new User();  
    user.setName("jiang1004");
    user.setNickname("江江1004");
    user.setPassword("123456");
    userRepository.save(user);

    User user1 = userRepository.findOne(user.getId());  
    System.out.println("User info:" + user1);  
} 

}
直接写入依然乱码,判断跟网页没有关系,应该是服务器问题。
5.检查Mysql参数,发现character_set_server为latin1
这里写图片描述
6.修改mysql.ini,然后重启,解决乱码问题。

[mysql]
default-character-set=utf8

[mysqld]
character-set-server=utf8
basedir = D:\toolsmysql-5.7.16-winx64
datadir = D:\mysql_data
port = 3306
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/jzd1997/article/details/77533026
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-04-10 23:54:06
  • 阅读 ( 1151 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢