繼承自一個在Connection上執行PreparedStatements的類。SQLException:JZ0S4:無法執行空的(零長度)查詢。準備好的聲明
public class doSomething {
private PreparedStatement ps;
public setPS (Connection conn) throws SQLException {
String sql = "select * from table where id = ?";
ps = conn.prepareStatement(sql);
}
public void runSomething(String var){
ps.setString(1,var);
ResultSet rs = ps.executeQuery();
...
}
}
我打電話
doSomethingInstance.setPS(conn);
doSomethingInstance.runSomething(var);
從另一個類,這會引發和異常的
ResultSet rs = ps.executeQuery();
唯一的例外是的SQLException:JZ0S4:無法執行空(零長度)查詢。在準備好的聲明上。我不明白爲什麼。有沒有人看到Iam在這裏做錯了什麼?
謝謝!
很奇怪......如果聲明真的是空的,setString()不應該先工作。你確定這是正確的/完整的代碼嗎? (「public setPS(...」不應該編譯:缺少返回類型)不知道你在用什麼數據庫,但是「table」不是一個很好的表名,它是一個保留關鍵字(MySQL至少) – 2009-07-17 19:49:35