有网友遇到中文账号登录失败,也没有任何报错信息。
错误排查解决:
1.在Controller层打断点运行,发现前台传入后台的值是正常的,说明前台传值解析正常,说明可能是service层或者DAO层的问题。
2.单元测试测试后台service代码,传入中文账号和对应密码发现获取不到对应bean,而查询所有bean时是可以获取到中文账号信息,这说明中文在传入数据库的时候乱码,所以查不到对应用户信息。
3.解决问题:连接数据的配置文件中,在URL后添加UTF-8编码格式:?useUnicode=true&characterEncoding=UTF-8
spring:
datasource:
name: test #数据库名
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8 #url
username: root #用户名
password: 123456 #密码
driver-class-name: com.mysql.jdbc.Driver #数据库链接驱动
4.修改后,运行正常