日期:2014-05-20  浏览次数:24288 次

在MYSQL中的BLOB字段中插入图片,提示出错!!!
加载MYSQL驱动成功
com.mysql.jdbc.JDBC4Connection@1479feb
c:\Users\hjx\Desktop\pic.jpg
file:8202
com.mysql.jdbc.exceptions.jdbc4.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 '?\0^??°úRWW??b9¤z7ü-??\0?Q?\0?×????(?\0àk×??K??°??è??·???G?\0^??[í?\0@“?\0??' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
at com.mysql.jdbc.Util.getInstance(Util.java:386)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3597)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3529)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1990)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2415)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2333)
at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2318)
at mysqlcom.MySQLAddBlob.main(MySQLAddBlob.java:78)
关闭数据连接完成


------解决方案--------------------
你是意思是把图片放到数据库中吗?这不很麻烦吗?
首先你要使用文件流去读取图片,然后把字节流存入数据库!
取出这张图片的时候,你又去读取字节流重新写入文件!
这样一来,你认为麻烦吗?我认为非常麻烦。。。
简单的方法就是上传图片时把图片存到服务器上,
数据库中存储图片在服务器上的相对路径,
那么在取出来的时候就直接写路径,就OK了。