日期:2014-05-16  浏览次数:20755 次

java上传图片到Mysql问题记录
   在上传图片到mysql数据库的时候,遇到点麻烦,折腾了半天,终于解决,记录这个问题,方便以后查阅,也为遇到类似问题的同学,提供一个解决方案。
   问题描述:java上传图片到mysql数据库,遇到问题。
异常如下:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 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 '?E\0??l???NGG′3???8y???JK?a5??ú???J*-c1\0?\0+y-)?òòò???é?àD??:58éíatê!?×,?' at line 1
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3283)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1332)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1604)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1519)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1504)
at com.pengsy.author.test.PutImg.putImg(PutImg.java:27)
at com.pengsy.author.test.PutImg.main(PutImg.java:40)

解决方案:
http://blog.csdn.net/yakoo5/archive/2009/07/15/4349670.aspx这篇文章中提到这么一句话:MySQL将字符集设为GBK时,使用参数更新或插入中的字符串字段参数会引起异常,将字符集改为GB2312就可以了。这个地方涉及到几个地方字符集的修改。
开始我只修改了数据库的编码和数据库表的编码,还是报同样的错误。后来在
http://border.iteye.com/blog/116537这篇文章中看到如下说明:MySQL 4.1的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。对于字符集的支持细化到四个层次: 服务器(server),数据库(database),数据表(table)和连接(connection)。 查看我的连接的字符集,由于没改过来,所以报错。改了,就好了。

解决办法:
1、修改mysql编码(数据库编码(一般在my.ini文件中),表编码,连接编码(url中字符集编码))
2、重启服务器