1 java sql database oracle jdbc
UPDATE MY_TABLE SET COL_1=?, COL_2=? where COL_3=? AND COL_4=?
我将数组中确切数量的值发送到Statement(在我的情况下:4).这样做我得到异常:在index :: 4处缺少IN或OUT参数
注意:我认为我们不能SET COL_1=?,COL_2=?做我们需要做的SET COL_1='DESIRED_VALUE',COL_2='DESIRED_VALUE'这是我的误解吗?
Java代码
StringBuilder updateQuery=new StringBuilder("UPDATE MY_TABLE SET COL_1=?, COL_2=? where BOOKMARKID_ACT=? AND DIMID_ACT=?");
ArrayList<Object> alObjectData=new ArrayList<Object>();
alObjectData.add("VALUE1");
alObjectData.add("VALUE2");
alObjectData.add("VALUE3");
alObjectData.add("VALUE4");
dpQuery.executeUpdate(connTemp, updateQuery.toString(), alObjectData);
Run Code Online (Sandbox Code Playgroud)
Joh*_*Woo 11
我想你想创造一个PreparedStatement.看起来应该是这样的:
// con is your active connection
String sqlStatement = "UPDATE MY_TABLE SET COL_1=?, COL_2=? where BOOKMARKID_ACT=? AND DIMID_ACT=?";
PreparedStatement prest = con.prepareStatement(sqlStatement);
prest.setString(1, valueFirstParam);
prest.setString(2, valueSecondParam);
prest.setString(3, valueThirdParam);
prest.setString(4, valueFourthParam);
prest.executeUpdate();
Run Code Online (Sandbox Code Playgroud)
你还应该在这个类的顶部添加这一行
import java.sql.*;
Run Code Online (Sandbox Code Playgroud)
PreparedStatements避免您的代码从SQL注入.
| 归档时间: |
|
| 查看次数: |
163 次 |
| 最近记录: |