mysql语句中出现中文的情况下,在java程序中不会有结果,也不会报错.

mysql语句中出现中文的情况下,在java程序中不会有结果,也不会报错.

今天,小白码代码时,碰到了一个错误:

String sql="select * from t_student t1,t_class t2,t_grade t3 where t1.classId=t2.classId and t2.gradeId=t3.gradeId and t1.stuName like '%Jay%' limit 0,8 ";
			
String sql="select * from t_student t1,t_class t2,t_grade t3 where t1.classId=t2.classId and t2.gradeId=t3.gradeId and t1.stuName like '%李四%' limit 0,8 ";

Connection connection=dbUtil.getCon();
String sql="select * from t_student t1,t_class t2,t_grade t3 where t1.classId=t2.classId and t2.gradeId=t3.gradeId and t1.stuName like '%李四%' limit 0,8 ";
PreparedStatement pstmt=connection.prepareStatement(sql);
ResultSet rs=pstmt.executeQuery();

			

奇怪的是,第一个英文作条件AC了,第二个中文做查询居然WA,返回的结果集为null。呆呆地想了很久,最终求助于万能的博客,很幸运的找到了一位博主的帖子得以解决。
My God!虽然猜到了是编码错误,但我项目是部署在了Tomcat服务器,我以为是页面发送请求时,tomcat解读时使用的是其他编码。感谢上面链接里的博主。

解决方法:
设置数据库Url时,添加数据库jdbc连接的编码格式为UTF-8。


错误:dbUrl=jdbc:mysql://localhost:3306/p-student
正确:dbUrl=jdbc:mysql://localhost:3306/p-student?useUnicode=true&characterEncoding=UTF-8

参考链接:
mysql语句中出现中文的情况下,在java程序中不会有结果,也不会报错.
https://blog.csdn.net/weixin_43113563/article/details/102765896

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值