henyxh 2011-05-02 12:47
浏览 307
已采纳

jdbc操作mysql中文插入问题

insert into table values(1,'中文'),数据库的编码和表的编码均是utf-8
在mysql workbench中插入没有问题,就是java中插入时报错,为啥呢?
报错信息:
java.sql.SQLException: Syntax error or access violation, message from server: "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1"
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1825)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1020)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1109)
at com.mysql.jdbc.MysqlIO.sqlQuery(MysqlIO.java:1070)
at com.mysql.jdbc.Connection.execSQL(Connection.java:2027)
at com.mysql.jdbc.Connection.execSQL(Connection.java:1984)
at com.mysql.jdbc.Statement.execute(Statement.java:896)
at cn.com.elaw.callcenter.service.SearchService.addRecord(SearchService.java:111)
at cn.com.elaw.callcenter.service.SearchService.main(SearchService.java:141)
另外,用绑定变量的方式:
String updateSQL = "insert into ccdb.to_queryInfo(humanID) values(?)";
PreparedStatement myPreparedStatement = myConnection.prepareStatement(updateSQL);
// myPreparedStatement.setString(1, AH);
myPreparedStatement.setInt(1, humanID);
不管有没有中文都报错

换了一个包后,插入不报错了,但是插入的数据乱码

  • 写回答

9条回答 默认 最新

  • iteye_2443 2011-05-04 11:46
    关注

    设置mysql的安装目录

    basedir = "d:\fycx\mysql"

    设置mysql数据库的数据的存放目录,必须是data,或者是\xxx\data

    datadir="d:\fycx\mysql\data"

    设置mysql服务器的字符集

    #default-character-set=utf8
    很明显的,数据库服务器编码被注释了
    #default-character-set=utf8 这不等于没设置么

    另外,你倒底是插入前乱码还是插入后乱码?
    不回答问题的关键,谁知道你问题出在哪里?

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(8条)

报告相同问题?

悬赏问题

  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 LiBeAs的带隙等于0.997eV,计算阴离子的N和P
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘
  • ¥15 来真人,不要ai!matlab有关常微分方程的问题求解决,
  • ¥15 perl MISA分析p3_in脚本出错
  • ¥15 k8s部署jupyterlab,jupyterlab保存不了文件
  • ¥15 ubuntu虚拟机打包apk错误
  • ¥199 rust编程架构设计的方案 有偿
  • ¥15 回答4f系统的像差计算