私は、UPDATEクエリを実行するためにPrepareStatementとBatchUpdateを使用しています。 forループでは、バッチを作成します。ループの終わりに私はバッチを実行します。WHERE節のPreparedStatementと 'null'値
上記のロジックは、PrepareStatementで使用されるSQLクエリがWHERE文節でnull値を持たない場合に有効です。
WHERE句にNULL値がある場合、Update文は失敗します。
私のコードは次のようになり、
connection = getConnection();
PreparedStatement ps = connection.prepareStatement(
"UPDATE TEST_TABLE SET Col1 = true WHERE Col2 = ? AND Col3 = ?");
for (Data aa : InComingData){
if(null == aa.getCol2()){
ps.setNull(1, java.sql.Types.INTEGER);
}
else {
ps.setInteger(1,aa.getCol2())
}
if(null == aa.getCol3()) {
ps.setNull(2, java.sql.Types.INTEGER);
}
else {
ps.setInteger(2,aa.getCol3())
}
ps.addBatch();
}
ps.executeBatch();
connection.commit();
任意の助けいただければ幸いです。
感謝。しかし、私はそれを動作させるために何をすべきですか? – bond
さて、あなたの引数のヌルネスに応じて動的にSQLクエリを構築してください。 –