0
public void updateById(Suser user) {
StringBuilder sql = new StringBuilder();
Map<String, Object> params = new HashMap<String, Object>();
sql.append("update " + TABLE_NAME + " u");
sql.append(" set");
sql.append(" user_name=:userName,password=:password,role=:role,enable=:enable,service_pwd=:servicePwd,cluster_id=:clusterId");
sql.append(" where");
sql.append(" id=:id");
params.put("userName", user.getUserName());
params.put("password", user.getPassword());
params.put("role", user.getRole());
params.put("enable", user.isEnable());
params.put("id", user.getId());
params.put("servicePwd", user.getServicePwd());
params.put("clusterId", user.getCluster().getId());
getNamedParameterJdbcTemplate().update(sql.toString(), params);
}
ここは現在のDAOレイヤーですが、1つのメソッドを使用して列の一部を更新するとどうしますか?更新が必要な列は毎回異なる場合があります。春の動的更新SQLを実装する方法
追加動的SQLまたはaleadyは春に簡潔な方法を持っていますか?
どの列を更新する必要があるのかを教えてください。 '' Suser''インスタンスの他のフィールドはすべてnullですか? – f1sh
@ f1sh umm.実際、私は[nullで]必要な列を伝えたくありません。私は本当にSQLを直接実行する方法が嫌いです。だから別の方法やプラットフォームがこれを解決することができますか? – jenkin
関連する列のみを追加して独自のクエリ文字列を作成することも、SQLクエリを混乱させたくない場合は、hibernateなどのORMマッパーを調べる必要があります。 – f1sh