2013-09-22 50 views
0

我正在尝试设置在一份声明中的变量如下:JDBC预处理语句,编译器不recogonise set方法

String addRow = "INSERT INTO " + TABLE_NAME + " VALUES(?,?,?)"; 
Statement preparedStat = connection.prepareStatement(addRow); 
preparedStat.setClob(1,myClob); 

但是我得到一个“无法找到符号”错误的方法的setClob 。如果尝试使用任何设置的方法,我会得到相同的错误,例如SETINT等我已导入SQL库:

import java.sql.*; 

任何想法,为什么我的编译器是不承认任何这里的设置方法?

回答

0

setClob方法属于PreparedStatment类,但你的参考是Statement类和Statement类的没有叫setClob任何方法。因此它会抛出错误。更新您的声明从

Statement preparedStat = connection.prepareStatement(addRow); 

PreparedStatement preparedStat = connection.prepareStatement(addRow); 
0

你需要

PreparedStatement preparedStat; 

Statement不声明方法

0

改变语句的PreparedStatement;

PreparedStatement preparedStat = connection.prepareStatement(addRow); 
1

这里preparedstat对象的类型声明,所以声明接口不包含setXXX()方法来设置值。 PreparedStatement接口具有setXXX()方法来设置值,所以您可以使用Preparedstatement将值插入到表中而不是语句接口。

PreparedStatement pstmt = con.prepareStatement(query); pastmt.setXXX();