实现用一条sql去更新多条语句的前提是多条语句的条件不同,但是更新的字段及字段的值都是相同的,这样才能去更新。
public void updateMoreNumber(String[] ids){
StringBuffer sb = new StringBuffer("update task update_time = :update_time, flag = :flag where id in(");
int len = ids.length();
for(int i = 0; i < len; i++){
sb.append(" '" + ids[i] + "'");
if(i+1 < len){
sb.append(" , ");
}
}
sb.append(")");
Query query = getCurrentSession().createSQLQuery(sb.toString());
query.setTimestamp("update_time",DateUtils.now());
query.setParameter("flag","1");
query.executeUpdate();
}