2016-07-15 14 views
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は春に簡潔な方法を持っていますか?

+0

どの列を更新する必要があるのか​​を教えてください。 '' Suser''インスタンスの他のフィールドはすべてnullですか? – f1sh

+0

@ f1sh umm.実際、私は[nullで]必要な列を伝えたくありません。私は本当にSQLを直接実行する方法が嫌いです。だから別の方法やプラットフォームがこれを解決することができますか? – jenkin

+0

関連する列のみを追加して独自のクエリ文字列を作成することも、SQLクエリを混乱させたくない場合は、hibernateなどのORMマッパーを調べる必要があります。 – f1sh

答えて

0

update table_name set column_name = 'SYSDATE - 30/1440'; このクエリは既存の時間から30分を追加し、それに応じて値を変更して時間を変更することができます。

関連する問題