Spring批量更新JdbcTemplate.batchUpdate()

时间:2022-07-31 16:03:05
from:http://blog.csdn.net/shihuacai/article/details/11992355
public class BatchUpdate{    JdbcTemplate jdbctemp; //JdbcTemplate的获取不是我所讲的范围。 我们只管用spring得这一对象,    public static void main(String[] args) {        BatchUpdate bu = new BatchUpdate();        List list = bu.storeList();        bu.batchUpdateLinkset(list);    }    public List storeList(){        List linkset = new ArrayList();        linkset.setDOMAIN_ID("domain_idTeset");        linkset.setNE_ID("ne_idTEST");        linkset.setSIGLINKSET_NAME("SIGLINKSET_NAMEtest");        linkset.setN_CONFIRM(0);        linkset.setTIME_STAMP("2010-07-27 09:05:21");        updatelist.add(linkset);    }       public void batchUpdateLinkset(final List list) {        String sql = "update LINK_SET set N_CONFIRM=?,TIME_STAMP=?,DOMAIN_ID=?,SIGLINKSET_NAME=? where NE_ID=?";        jdbctemp.batchUpdate(sql, new BatchPreparedStatementSetter() {            public int getBatchSize() {                return list.size();                //这个方法设定更新记录数,通常List里面存放的都是我们要更新的,所以返回list.size();            }            public void setValues(PreparedStatement ps, int i)throws SQLException {                Linkset linkset = (Linkset) list.get(i);                ps.setString(1, linkset.getCHINA_NAME());                ps.setString(2, linkset.getENGLISH_NAME());                ps.setInt(3, linkset.getN_CONFIRM());                ps.setString(4, linkset.getTIME_STAMP());                ps.setInt(5, linkset.getDOMAIN_ID());                ps.setString(6, linkset.getSIGLINKSET_NAME());                ps.setString(7, linkset.getNE_ID());            }        });    }}
第二种写法 
List glxxParams = new ArrayList();        for(int i=0;i<glxxList.size();i++){            Object glxxParam[]={                    glid,                    glxxList.getJSONObject(i).optString("jbxxID"),                    glxxList.getJSONObject(i).optString("bz"),            };            glxxParams.add(glxxParam);        }        super.getJdbcTemplate().batchUpdate(sql_glxx,glxxParams);