MySQL テーブルを更新する関数が 1 つあります。パラメータが存在するかどうかに応じて、フィールドを選択的に更新する必要があります。これが私が今それをコーディングした方法です。
String sql = "";
if (employerId > 0) sql = sql + "employerid=?,";
if (status != null) sql += " status=?,";
if(printurl != null) sql += " url=?";
if (sql.endsWith(",")) sql = sql.substring(0, sql.length()-1);
PreparedStatement ps = con.prepareStatement("update employer set "
+ sql
+ "where id=?");
if (employerId > 0) ps.setInt(1, employerId);
if (status != null) ps.setString(2,status);
このような場合、パラメーター インデックスはどのように決定すればよいですか? 存在するパラメーター (if 条件) に応じて、パラメーターのインデックスも異なりますよね? どうすればこれを回避できますか? Javaでこれを処理するより良い方法はありますか?