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에 봄을 간결하게 추가 하시겠습니까?
어떤 열을 업데이트해야 하는지를 어떻게 알 수 있습니까? ''Suser'' 인스턴스의 다른 모든 필드는 null입니까? – f1sh
@ f1sh umm. 실제로, 나는 [null이 (가)] 필요로하는 열을 말하고 싶지 않습니다. 난 정말 직접 SQL을 실행하는 방식을 좋아하지 않아. 그래서 다른 방법이나 플랫폼이이를 해결할 수 있습니까? – jenkin
관련 열만 추가하여 고유 한 쿼리 문자열을 만들거나 SQL 쿼리를 엉망으로 만들고 싶지 않으면 최대 절전 모드와 같은 ORM 매퍼를 조사해야합니다. – f1sh