1、新建一个Setter类并继承 BatchPreparedStatementSetter
package
com.allyroot.bjmvemis.webapp.util.setter;
import
java.sql.PreparedStatement;
import
java.sql.SQLException;
import
java.util.List;
import
org.springframework.jdbc.core.BatchPreparedStatementSetter;
import
com.allyroot.bjmvemis.model.SysFunc;
public
class
RoleFuncSetter
implements
BatchPreparedStatementSetter {
private
Long
roleId
;
private
List<SysFunc>
sysFuncs
;
public
RoleFuncSetter(Long roleId, List<SysFunc> sysFuncs){
this
.
roleId
= roleId;
this
.
sysFuncs
= sysFuncs;
}
@Override
public
int
getBatchSize() {
return
sysFuncs
.size();
}
@Override
public
void
setValues(PreparedStatement ps,
int
i)
throws
SQLException {
SysFunc sysFunc =
sysFuncs
.get(i);
if
(sysFunc!=
null
){
ps.setLong(0,
roleId
);
ps.setLong(1, sysFunc.getFuncId());
}
}
}
|
2、在调用的impl 类中 需要继承 spring 的 JdbcDaoSupport,然后使用
batchUpdate() 方法进行批量操作
String sql =
"insert into role_func(role_id,func_id) values (?,?)"
;
getJdbcTemplate().batchUpdate(sql,
new
RoleFuncSetter(roleId, sysFuncs));
|