2013-09-22 80 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();