血的教训 之 db.properties配置文件
sb的我竟然能因为乱码问题折腾一天,原因也是让我意想不到:错误出现现在mysql数据库的url地址配置上😭。
其实在配置mysql的url的时候由于我记得不是特别牢,还特意在网上搜了url配置,并复制使用了某位博主的代码。
jdbc:mysql:///mybatis?useSSL=false&useUnicode=true&charsetEncoding=utf-8
就是它,我乱码的罪魁祸首😭。
细心的你就会发现错误了,characterEncoding
才是正解。
额,没什么可说的,就是希望那位博主别再误人子弟了😒。
一、解决流程
- 先检查了自己是否配置了request.setCharacterEncoding("utf-8");
- 没问题后,确认是否是post请求的方式,后面还特地用函数检查String method = request.getMethod();
- 观察是在什么阶段发生乱码的。经过数据打印,发现在sqlSession.commit();前都不会乱码 🤔
- 在解决无果后,开始检查所有文件的编码格式,IDEA的setting中的File Encodings全部配置为utf-8,使用手动配置的Tomcat8.5,清除缓存等等无脑操作,还是无果
- 晚上回来,静下心来,分析可以发现在commit前没有问题,但到数据库的数据始终是乱码的,错误可能发现在mysql数据库上✨
- 先是检查数据库、表创建是的编码——是utf-8。然后是,db.properties配置文件,乍一看没什么问题。于是又在网上查看mysql数据库参数配置,一行一行的对比发现了错误。哎!!
二、代码 —— 牢记
在此做一下记录:
#Connect/J version 5.X
driver=com.mysql.jdbc.Driver
url=jdbc:mysql:///mybatis?useSSL=false&useServerPrepStmts=true&useUnicode=true&characterEncoding=utf-8
username=root
password=root
#Connect/J version 6.X以后的版本,适合于MySQL8.x新版本
driver=com.mysql.cj.jdbc.Driver
url=jdbc:mysql:///mybatis?serverTimezone=UTC&useSSL=false&useServerPrepStmts=true&useUnicode=true&characterEncoding=utf-8
username=root
password=root
三、注意事项
mysql的url相关配置可以根据自己的实际应用场景添加其他参数配置。
1、mybatis中
注意在mybatis-config.xml中要将<properties resource="db.properties"/>
放在<configuration></configuration>
内的最前面。
四、经验教训
网络的水很深,我有点把握不住。自己经过测试的代码,才是自己的😢。
标签:
数据库
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署