`

mysql 高版本jdbc驱动程序使用PreparedStatement.setBinaryStream方法报错及解决办法

阅读更多
mysql 高于版本jdbc驱动程序 使用PreparedStatement.setBinaryStream方法报错及解决办法。

mysql 使用以下版本驱动程序 在PreparedStatement中执行setBinaryStream方法时报错误:
mysql-connector-java-5.0.8-bin.jar
mysql-connector-java-5.1.13-bin.jar

错误信息如下:

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 '? ?±n????#??1}?M????\'dG???zPd m7??‘*4??@?8ê§??à????‘6m?-?
E?OH??A?—6tl?iq?' at line 1
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1051)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3566)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3498)
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1959)
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2113)
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2568)
	at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2113)
	at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:1364)
	at com.frameworkset.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169)
	at com.frameworkset.common.poolman.PreparedDBUtil.innerExecute(PreparedDBUtil.java:1223)
	at com.frameworkset.common.poolman.PreparedDBUtil.executePrepared(PreparedDBUtil.java:1578)
	at com.frameworkset.common.poolman.PreparedDBUtil.executePrepared(PreparedDBUtil.java:924)
	at com.frameworkset.mysql.mysql.testBlobWrite(mysql.java:157)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:585)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
	at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:44)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:180)
	at org.junit.runners.ParentRunner.access$000(ParentRunner.java:41)
	at org.junit.runners.ParentRunner$1.evaluate(ParentRunner.java:173)
	at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
	at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:220)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)


可以使用版本mysql-connector-java-3.1.14-bin.jar,执行就不报错。

分享到:
评论

相关推荐

    MySQL的JDBC编程实例.pdf

    6. **JDBC驱动程序的使用**:在Java程序中,首先需要添加MySQL的JDBC驱动到类路径(CLASSPATH)。例如,引入`mysql-connector-java-3.0.12-production-bin.jar`。然后,通过`Class.forName()`加载驱动,使用`...

    jdbc连接数据库的方式2

     Oracle的PreparedStatement类不完全支持BLOB和CLOB等大对象的处理,尤其是Thin驱动程序不支持利用PreparedStatement对象的setObject()和setBinaryStream()方法设置BLOB的值,也不支持利用setCharacterStream()方法...

    mysql,sqlserver,oracle三种数据库的大对象存取解析.docx

    与MySQL相比,SQL Server在存取大对象时的API使用上没有显著差异,同样使用PreparedStatement的setBinaryStream和getBinaryStream方法。 ```java // 示例代码 PreparedStatement ps = conn.prepareStatement(...

    MySql数据库连接+IO

    - 使用 `PreparedStatement` 的 `setBinaryStream` 方法将文件流写入到 SQL 参数中。 - 执行 `executeUpdate` 方法完成更新操作。 4. **图片数据读取** (`write()` 方法): - 查询 `"select photo from user ...

    jdbcoracle(文件上传)

    6. **读取文件并写入BLOB**:使用`InputStream`读取文件内容,然后通过`PreparedStatement`的`setBinaryStream()`方法将数据写入BLOB字段。 7. **提交事务**:执行`Statement.execute()`或`PreparedStatement....

    mysql oracle 插入blob数据实例源码

    在这个例子中,我们创建了一个PreparedStatement,设置SQL语句的占位符,并使用setBinaryStream方法将图片文件转换为字节流,然后插入到数据库中。 二、Oracle中的Blob数据插入 Oracle数据库处理Blob数据的方法...

    java,Blob字段操作,将图片或者文件保存到数据库中.zip

    例如,如果你使用的是MySQL,你需要加载对应的驱动(如`com.mysql.jdbc.Driver`),然后使用`DriverManager.getConnection()`方法创建连接。 2. **准备Statement或PreparedStatement**:创建一个SQL语句来插入Blob...

    J2EE-JDBC学习笔记

    使用`DATE`, `TIME`, `TIMESTAMP`类型进行存储,通过`PreparedStatement`的`setDate()`, `setTime()`, `setTimestamp()`方法插入数据,以及`ResultSet`的相应`getDate()`, `getTime()`, `getTimestamp()`方法读取...

    往MySQL中存储图片的方法

    在MySQL中存储图片涉及创建专门的数据库表、加载JDBC驱动、建立数据库连接、使用PreparedStatement插入图片二进制数据。这种方式虽然可以直接在数据库中管理图片,但需要注意的是,大量二进制数据可能导致数据库性能...

    H2Database高级特性.pdf

    意味着不会把整个对象一次性读入内存,而是采用PreparedStatement.setBinaryStream和PreparedStatement.setCharacterStream方法存储对象,使用ResultSet.getBinaryStream和ResultSet.getCharacterStream方法读取对象...

    oracle mysql sqlser2000对大数据对象的操作

    例如,使用PreparedStatement的setBinaryStream方法可将二进制数据插入BLOB字段,而ResultSet的getBinaryStream方法则用于读取BLOB数据。此外,使用Blob接口,开发者可以更方便地处理大数据对象的生命周期,如读取、...

    jsp如何上传照片到mysql,再查询在jsp中显示

    在给定的代码中,首先加载MySQL的JDBC驱动,然后创建连接,声明`Statement`或`PreparedStatement`对象。 - 为了将照片存储为二进制数据,需将图片文件读取为`InputStream`。在示例代码中,使用`FileInputStream`...

    如何向MYSQL中写入二进制文件

    在这里,我们使用setBinaryStream()方法来将二进制流写入数据库中,第一个参数是通配符位置,第二个参数是流,第三个参数是流的长度。 在实际开发中,我们经常需要读取MYSQL数据库中的二进制文件,以便于显示或处理...

    图片存入mySql数据库.pdf

    插入图片时,使用了`PreparedStatement`的`setBinaryStream`方法,这是处理大量二进制数据时推荐的方法,它可以有效避免内存溢出的问题。 在上传图片并存储到数据库之后,还有一个`imagetestimageout.jsp`页面用于...

    java实现插入mysql二进制文件,blob类型,遇到问题及解决办法

    ### Java 实现插入 MySQL 二进制文件(BLOB 类型)及遇到的问题与解决办法 #### 一、概述 在处理多媒体数据如图片、音频、视频等时,经常需要将这些二进制数据存储在数据库中。MySQL 提供了 BLOB 类型用于存储二...

    利用struts上传

    1. **加载数据库驱动**:首先,通过`Class.forName`方法加载MySQL的JDBC驱动。 2. **建立数据库连接**:使用`DriverManager.getConnection`方法建立与数据库的连接。 3. **执行SQL语句**:创建`PreparedStatement`...

    Java+mysql本地图片上传数据库及下载示例

    - 首先,我们需要加载MySQL的JDBC驱动,并建立与数据库的连接。这通过`Class.forName()`和`DriverManager.getConnection()`完成。 - 接着,我们创建一个`PreparedStatement`对象,准备执行SQL插入语句。这里使用`?...

Global site tag (gtag.js) - Google Analytics