2016-07-15 3 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 레이어입니다. 단 하나의 메서드를 사용하여 열의 일부를 업데이트하는 방법은 무엇입니까? 업데이트해야하는 열은 매번 다를 수 있습니다.봄에 동적 업데이트 sql을 구현하는 방법

동적 SQL 또는 aleady에 봄을 간결하게 추가 하시겠습니까?

+0

어떤 열을 업데이트해야 하는지를 어떻게 알 수 있습니까? ''Suser'' 인스턴스의 다른 모든 필드는 null입니까? – f1sh

+0

@ f1sh umm. 실제로, 나는 [null이 (가)] 필요로하는 열을 말하고 싶지 않습니다. 난 정말 직접 SQL을 실행하는 방식을 좋아하지 않아. 그래서 다른 방법이나 플랫폼이이를 해결할 수 있습니까? – jenkin

+0

관련 열만 추가하여 고유 한 쿼리 문자열을 만들거나 SQL 쿼리를 엉망으로 만들고 싶지 않으면 최대 절전 모드와 같은 ORM 매퍼를 조사해야합니다. – f1sh

답변

0

update table_name set column_name = 'SYSDATE - 30/1440'; 이 쿼리는 기존 시간에서 30 분을 추가하며 시간을 변경하기 위해 그에 따라 값을 변경할 수 있습니다.

관련 문제