SQL を実行する現在の方法を停止します。読みにくく、変換の問題が発生する可能性があり、最も重要なのはSQL インジェクション攻撃に対して脆弱です。問題は、値の1つに'
、SQL内でその引用された値を効果的に終了させる が含まれていることだと思います。
代わりに、次を使用しますPreparedStatement
。
String sql =
"insert into famous_place values(img_id_sq.nextval, ?, ?, ?, ?, ?, ?, ?)";
PreparedStatement statement = db.prepareStatement(sql);
statement.setString(1, name);
statement.setString(2, location);
statement.setString(3, dist);
statement.setString(4, about);
statement.setString(5, status);
statement.setString(6, path);
statement.setInt(7, id);
int rows = statement.executeUpdate();
(そして、適切なtry
/finally
ブロックを使用して、ステートメント、接続などを閉じます)