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;
}

 

posted @ 2017-03-17 09:09  BingoTiger  阅读(390)  评论(0)    收藏  举报