特殊文字を置き換える必要がある挿入ステートメントである文字列がありますか? リストから特定の要素に。クエリ文字列は
insert into OPRS_VEHICLE(VEHICLE_ID, DEPOT_ID, SERVICE_TYPE_ID, REGISTRATION_KEY,
REGISTRATION_NO, IS_ACTIVE,CREATED_BY, CREATED_DATE,
MODIFIED_BY, MODIFIED_DATE) values(?,?,?,?,?,?,?,?,?,?)
今、私はそれぞれを交換する必要がありますか?値を含むリストの特定の要素を持つ文字。
私はこれを試しました
int index = query.indexOf("?");
for (int j = 0; j < list.size(); j++) {
formattedQuery = query.replace(query.substring(index, index+1),
list.get(j).toString());
}
? を置き換える必要があります。リストの対応する値で。
編集
try{
conn.setAutoCommit(false);
if(query != null){
ps = conn.prepareStatement(query);
for (int i = 0; i < myCollection.size(); i++) {
List list = (List) myCollection.get(i);
int count = 1;
for (int j = 0; j < list.size(); j++) {
if(list.get(j) instanceof Timestamp) {
ps.setTimestamp(count, (Timestamp) list.get(j));
} else if(list.get(j) instanceof java.lang.Character) {
ps.setString(count, String.valueOf(list.get(j)));
}
else {
ps.setObject(count, list.get(j));
}
count++;
}
try {
ps.execute();
} catch (Exception e) {
}
準備されたステートメントの実行が失敗した場合は、コレクション リスト全体を取得し、一度に 1 つのステートメントを挿入してコミットするメソッドを呼び出す必要があります。これを行う方法 ?(または)配列のサイズを知っているので、配列を半分のサイズに分割してから、そのステートメントを準備して挿入できますか?どちらが安全で良いですか?このようにすることは可能ですか?
前もって感謝します