java.lang.AbstractMethodError: com.mysql.jdbc.PreparedStatement.setCharacterStream(ILjava/io/Reader;
2015-08-18 22:07
609 查看
出现上述异常是在使用MySQL进行大文本数据的读写时,使用PreparedStatement中的
setCharacterStream(int parameterIndex, Reader reader, int length)方法的时候产生的。查看API可以得到该方法还有另一种实现
void setCharacterStream(int parameterIndex, Reader reader, long length)不同之处在于第三个参数类型上。第二种实现是在JDK1.6之后才有的前者是在JDK1.2有的,虽然在建工程并使用第三个参数为long类型的setCharacterStream时候并没有报错,然而在进行测试的时候却总是通不过,出现java.lang.AbstractMethodError: com.mysql.jdbc.PreparedStatement.setCharacterStream(ILjava/io/Reader;异常,百思不得解……在这种使用合法环境符合要求的情况下,尝试将第三个参数强制转换为int类型,测试顺利通过代码如下:
@Test public void insert(){ Connection conn = null; java.sql.PreparedStatement ps = null; ResultSet rs = null; try { conn = JdbcUtils.getConnection(); String sql = "INSERT INTO testclob(id,textfile) VALUES(?,?)"; ps = conn.prepareStatement(sql); ps.setString(1, "1"); File file = new File("src/text.txt"); FileReader reader = new FileReader(file); ps.setCharacterStream(2, reader, (int)file.length()); int num = ps.executeUpdate(); if(num > 0) System.out.println("success"); } catch (Exception e) { e.printStackTrace(); }finally{ JdbcUtils.release(rs, ps, conn); } }
相关文章推荐
- JAVA中实现加法器
- 2015 7 3 java核心技术卷一 7-10章 图形,事件处理,Swing组件和应用程序部署
- Path的配置问题
- 2015 7 1 java核心技术 卷1 第6章 接口与内部类
- Java生成随机验证码
- Eclipse的各种快捷键
- 2015 6 28 java核心技术 卷1 第4章 对象与类
- java实现二叉树的构建以及3种遍历方法
- java核心技术 卷一 第2-3章 安装java开发工具箱和 java的基本程序设计结构
- eclipse下修改包名
- Java try-catch-finally进行异常处理以及throw主动抛出异常
- maven管理的java Web项目复制粘贴需要更改的地方
- java字符串
- IOT command (based on sip)client API设计 for java
- Java中Map的简单使用
- Java深度历险(八)Java I/O
- JAVA中利用不规则二维数组输出杨辉三角形
- Java的基本程序设计结构(一)
- MyEclipse配置Hibernate/MyEclipse反向工程从数据表生成POJO和对象关系映射文件(以及HibernateSessionFactory)
- Eclipse快捷键