springMVC+myBatis批量新增(Oracle数据库)
批量新增带序列
myBatis xml配置
<!-- 批量增加用户角色 -->
<insert id="insertUserRoleByBatch" parameterType="java.util.List">
insert into zj_webdesk_user_role_tbl(id,user_id,role_id)
select zj_webdesk_user_role_seq.NEXTVAL,A.* from(
<foreach collection="list" item="item" index="index" separator="union all">
select #{item.userId,jdbcType=DECIMAL},#{item.roleId,jdbcType=DECIMAL} from dual
</foreach>
) A
</insert>
Mapper接口:
int insertUserRoleByBatch(List<UserRole> userRoleList);
Service接口:
int insertUserRoleByBatch(List<UserRole> userRoleList);
ServiceImpl:
@Override
public int insertUserRoleByBatch(List<UserRole> userRoleList) {
return userRoleCMapper.insertUserRoleByBatch(userRoleList);
}
Controller:
@ApiOperation(value = "新增用户", notes = "新增用户")
@RequestMapping(value = "/user/addUser", method = { RequestMethod.POST, RequestMethod.GET })
public ResultMap addUser(@ModelAttribute UserDTO userDTO) {
ResultMap rs = new ResultMap();
int count = userService.selectUserIsExist(userDTO.getAccount());
if(count>0){
rs.addData("success", -1);
}else{
userService.insertUser(userDTO);
rs.addData("success", 1);
}
return rs;
}
UserDTO:
public class UserDTO extends User{
/**
*
*/
private static final long serialVersionUID = -5894932629480245231L;
private String userRole;
public String getUserRole() {
return userRole;
}
public void setUserRole(String userRole) {
this.userRole = userRole;
}
}
insertUser:
@Transactional(propagation=Propagation.REQUIRED)
@Override
public int insertUser(UserDTO userDTO) {
//加用户
userDTO.setPasswd(EncodeUtil.convertToUnicode(userDTO.getPasswd()));
userCMapper.insertUser(userDTO);
//加权限
String userRole = userDTO.getUserRole();
String[] userRoles = userRole.split(",");
List<UserRole> userRoleList = new ArrayList<UserRole>();
for(int i=0;i<userRoles.length;i++){
UserRole userRoleObj = new UserRole();
userRoleObj.setRoleId(Integer.parseInt(userRoles[i]));
userRoleObj.setUserId(userDTO.getId().intValue());
userRoleList.add(userRoleObj);
}
userRoleCMapper.insertUserRoleByBatch(userRoleList);
//加布局
Layout layOut = new Layout();
layOut.setUserId(userDTO.getId());
layOutMapper.insertSelective(layOut);
return 1;
}
浙公网安备 33010602011771号