myclipse编译mysql语句时的一个语法问题

如图,mysql里username对应的属性是varchar,在myclipse输入中文时,控制台显示语法错误,输入数字字符串没这个问题,但是在mysql里操作又是正常的,大神给看看,萌新不太懂
图片说明
图片说明
图片说明

7个回答

用这个预编译的就没问题了
String sql = “select * from tab_student where s_number=?”;
PreparedStatement pstmt = con.prepareStatement(sql);
pstmt.setString(1, “S_1001”);
ResultSet rs = pstmt.executeQuery();



qq_39755279
哈喽小伙子 编码的问题,数据库默认utf-8,myclipse默认gbk
接近 2 年之前 回复
weixin_39754652
Supper波 回复ZhangZongILoveYou: 解决了
接近 2 年之前 回复
ZhangZongILoveYou
ZhangZongILoveYou 解决了吗?
接近 2 年之前 回复
weixin_39754652
Supper波 回复bashenmail: 嗯 确实是编码问题.数据库默认utf-8,myclipse默认gbk
接近 2 年之前 回复
bashenmail
bashenmail 回复qq_31397971: 嗯,编码需要看下数据库是啥编码的。utf-8或者gbk
接近 2 年之前 回复
qq_31397971
qq_31397971 回复weixin_39754652: 在上面数据库testjdbc后面加:?useUnicode=true&characterEncoding=UTF-8
接近 2 年之前 回复
Tang_Yuan9
Tang_Yuan9 同样问题看下
接近 2 年之前 回复
bashenmail
bashenmail 回复weixin_39754652: 实际编码要和你的一致,UTF-8是个例子
接近 2 年之前 回复
bashenmail
bashenmail 回复weixin_39754652: 你数据库什么编码的?改下连接编码jdbc:mysql://localhost:3306/YourDb?useUnicode=true&characterEncoding=UTF-8
接近 2 年之前 回复
bashenmail
bashenmail 回复weixin_39754652: ps.setObject(1,"王二"); 改成ps.setString(1,"王二");试试
接近 2 年之前 回复
zsqluck790804
zsqluck790804 两个单引号引用的字符串,到sql预编译后就不带''了,用“‘王二’”这个方式
接近 2 年之前 回复
weixin_39754652
Supper波 我改成了 String sql="insert into t_user (username,pwd,regtime) values (?,?,?)";//?是占位符,避免sql注入 PreparedStatement ps=conn.prepareStatement(sql); ps.setObject(1,"王二"); ps.setString(2,123456); ps.setData(3,new java,sql.Date(System.currentTimeMillis())); ps.excute(); 还是不行,把王二改成123结果正常了 你的也是可以的,但是换成了中文又是不行了,不知道是不是我的myclipse设置有问题
接近 2 年之前 回复

1,检查编码有没有错误,2,用jdbc的preparedstatmend这个对象试试

weixin_39754652
Supper波 记住了这个检查流程,谢谢
接近 2 年之前 回复

亲 单引号加个斜杠试试

weixin_39754652
Supper波 还是不行,我换台电脑试试
接近 2 年之前 回复

把你的sql语句中的中文 用变量替换下试试

weixin_39754652
Supper波 不行,
接近 2 年之前 回复

用``
不要用''

把username的值用格式占位符s%:
String sql = "insert into t_user (username,pwd,regtime) values(%s,111,now())";
sql = String.format(sql, "张三");

我也碰到了这个问题,还没有解决

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!