すでに存在するMySQLテーブルの列を更新しようとしています。値はテキストファイルから読み取ってから、指定した列に挿入する必要があります。
私は以下を試しました:
int counter=0;
while((fileLine=in.readLine())!=null)
{
System.out.println("Line read is: "+fileLine);
//execute db insertion
try {
//insert in the database
Query= "update db.table set col4=?"; //database
preparedStmt3 = DBConnection.con.prepareStatement(Query);
preparedStmt3.setString (1, fileLine);
preparedStmt3.executeUpdate();
System.out.println("Complete update statement for row: "+counter);
counter++;
} catch (Exception e) {
System.out.println("DB_Error:_"+ e.toString());
}
} //end while loop
私は値を出力しようとしましたがfileLine
、それは正しいようで、ループラウンドごとに正しく変化します。しかし、プログラムを実行してデータベースをチェックした後、挿入された値は最後の行のみであることがわかりました(これはすべてのレコードで繰り返され、結果としてすべての行をレコードに挿入することになっています) 。この問題の原因は何ですか?
編集:テキストファイルには次の行が含まれています:aaa bbb ccc ddd eee fff
printline
デバッグを確認するためにいくつかのステートメントを追加した後の実行出力は次のとおりです。
DBには挿入された最後の行のみが含まれます