用户缺少使用UPDATE语句找到的权限或对象..

时间:2018-01-31 14:47:44

标签: sql sql-update prepared-statement hsqldb

我尝试这种方式在UPDATE语句中插入值。我收到了错误:

  

SQLSyntaxErrorException:用户缺少Privilage或找不到的对象:语句中的intOne .......

代码:

private int oneValue(){
 PreparedStatement ps= conn.prepareStatement("select col1 from 
  tableOne ");
  ResultSet rs =ps.executeQuery;
  while(rs.next){
     String str=rs.getString("columnName").toString;
     int intOne= Integer.parseInt(str);
  }
return intOne;
}
Now :
private void theQuestionHere(int intOne){
 this.intOne=intOne;

 ps=conn.prepareStatement("update tableOne set col2=? where 
    col1=intOne);
 ps.setBytes(1,"anyByteArray");

 int anotherInt=ps.executeUpdate;
 if(int>0){
  System.out.println("OK");  
  }
 else{
  System.out.println("Not OK");  
  }
}

在查询字符串中使用intOne ...可以是否?

如果可以的话,为什么我会得到例外?

1 个答案:

答案 0 :(得分:0)

您的intOne仅存在于您的java代码中。数据库不知道它是什么。您需要为其分配PreparedStatement。

private void theQuestionHere(int intOne){

byte[] aByteArray = byte[] {1, 2, 3, 4};
ps=conn.prepareStatement("update tableOne set col2=? where col1=?");
ps.setBytes(1,aByteArray);

ps.setInt(2, intOne);

int anotherInt=ps.executeUpdate;
if(int>0){
 System.out.println("OK");  
 }
 else{
 System.out.println("Not OK");  
 }
}