Spring中批量执行Sql语句.doc
上传人:sy****28 上传时间:2024-09-14 格式:DOC 页数:2 大小:18KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

Spring中批量执行Sql语句.doc

Spring中批量执行Sql语句.doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Spring中批量执行SQL语句批量执行的SQL语句有两种:格式相同,即SQL语句涉及到的字段名、个数和顺序都相同;格式不同,即SQL语句涉及到的字段名、个数不同。针对相同的SQL语句执行批量操作SQL语句如下所示,我将批量插入数据:List<STUDENT>dtoList;//这里面存的是即将插入到student表中的数据StringkpfbSql="InsertIntoSTUDENT(ID,NAME,AGE)Values(?,?,?)";BatchPreparedStatementSettersetter=newBatchPreparedStatementSetter(){publicvoidsetValues(PreparedStatementps,inti)throwsSQLException{//给SQL语句的参数赋值JXKP_KP_FBDTOdto=dtoList.get(i);ps.setString(1,dto.getID());ps.setString(2,dto.getNAME());ps.setString(3,dto.getAGE());}publicintgetBatchSize(){returndtoList.size();}};int[]i=this.getJdbcTemplate().batchUpdate(kpfbSql,setter);注:int[]i中存放的是执行每条SQL语句时返回的成功条数的数组。因此,如果有插入失败的情况,数组i中将会存在0这个值。给问号赋值的过程在方法内部完成。针对不同的SQL语句执行批量操作SQL语句如下所示,我将执行的是删除表中对应的数据://更新学生表中ID信息StringidSql="UpdateSTUDENTsetID='"+id+"'";//更新学生的语文成绩StringywcjSql="UpdateSTUDENTsetYWCJ='60'WhereID='"+id+"'";//更新学生的数学成绩StringsxcjSql="UpdateSTUDENTsetSXCJ='80'WhereID='"+id+"'";//更新学生的英语成绩StringyycjSql="UpdateSTUDENTsetYYCJ='20'WhereID='"+id+"'";String[]sql=newString[]{idSql,ywcjSql,sxcjSql,yycjSql};int[]i=this.getJdbcTemplate().batchUpdate(sql);注:int[]i中存放的是执行每条SQL语句时返回的成功条数的数组。SQL语句必须是完整SQL语句,无法在后续处理中传值。以上方法全由作者亲测,成功后上传,如有问题,请给我留言