zhiyuan0 2020-01-06
先贴出配置文件
<select id="queryUserGroupByName" resultType="UserGroupModel"> select * from user_group where roleName=‘user‘ and groupName=#{groupName} </select>
对应的mapper
List<UserGroupModel>queryUserGroupByName(String groupName);
在写逻辑的时候发现,如果数据为空时,返回值并不是null
@ResponseBody @RequestMapping("/addGroup") public WebResultDto insertUserGroup(String groupName,String stoArea){ WebResultDto webResultDto = null; if(userInfoService.queryUserGroupByName(groupName) != null) { //已有重复用户名 System.out.println(userInfoService.queryUserGroupByName(groupName)); webResultDto = new WebResultDto("", "N", "此用户名已被注册!"); }else { userInfoService.insertUserGroup(groupName, stoArea); webResultDto = new WebResultDto("","Y",""); } return webResultDto; }
例如上述代码 userInfoService.queryUserGroupByName(groupName)就不可能为null。
网上查了一下,在mybatis中
如果返回值是Java集合类型,如List、Map,会先初始化(new一个集合对象),再把结果添加进去。
如果返回值是普通对象,查询不到时,返回值是null。
解决方案:service层稍做处理
@Override public List<UserGroupModel> queryUserGroupByName(String groupName) { // TODO Auto-generated method stub List<UserGroupModel> res = dao.queryUserGroupByName(groupName); if(res.size() == 0) { return null; } return res; }