Day32

  1. @Param注解,能够实现动态的查询数据库。比如Dao层:(@Param(“brandOfficeId”)String brandOfficeId)
    Mapper层:brand_office_id=#{brandOfficeId} (大括号里的brandOfficeId就是传到xml的brandOfficeId,这样做的好处就是保证虽然brandOfficeId的值改变,但是仍然可以用这个方法进行数据库查询)

  2. powerdesigner16.5破解方法:下载软件,并将破解文件bdpbm16.all文件替换掉原有文件即可

  3. 模糊查询:

controller层:这里的ApplyCrabManDto applyCrabManDto是为了接前台用户在文本框输入的名字,将输入的内容存在 applyCrabManDto中
,如果在没有前台输入内容的情况下,它一开始里面就是空的
 @RequestMapping("/findCrabManMsg")
    @ResponseBody
    public PageResult findCrabManMsg(int pageNo, int pageSize,ApplyCrabManDto applyCrabManDto,  HttpSession session) {
        PageResult result = new PageResult();
        User user = WebUtils.getUserBySession(session);
        //用户未登录
        if (null == user) {
            result.setMsg(Vm.USER_NOT_LOGIN);
            return result;
        }
        try {
            StringUtil.checkIllegalCharacter(applyCrabManDto);
            Page<ApplyCrabManDto> page = applyCrabManService.findCrabManMsg(pageNo, pageSize,applyCrabManDto, user);
            result.setMsg(Vm.FIND_SERVICEDATE_SUCCESS);
            result.setRows(page.getRecords());
            result.setTotal(page.getTotal());
        } catch (Exception e) {
            result.setMsg(Vm.FIND_SERVICEDATE_FAIL);
            log.error("查询验蟹师失败" + e.getMessage(), e);
            return result;
        }
        return result;
    }


Service接口层先不粘贴了,接下来直接上实现层:
因为要求的是查询的是当前品牌办主体下的申请验蟹师信息,所以需要在登录用户那取得主体id和品牌办id,并把它放到applyCrabManDto对象中
这个时候,对象里已存放三个信息了(前台用户输入的姓名,主体id,品牌办id)
 @Override
    public Page<ApplyCrabManDto> findCrabManMsg(int pageNo, int pageSize, ApplyCrabManDto applyCrabManDto, User user) {
        Page<ApplyCrabManDto> page = new Page<>(pageNo, pageSize);
        //查询验蟹师申请列表,根据主体id和品牌办id查
        applyCrabManDto.setBodyId(user.getBodyId());
        applyCrabManDto.setBrandOfficeId(user.getBrandOfficeId());
        List<ApplyCrabManDto> list = applyCrabManDao.findCrabManMsg(applyCrabManDto, page);
        page.setRecords(list);
        return page;


Dao层
 List<ApplyCrabManDto> findCrabManMsg(ApplyCrabManDto applyCrabManDto, @Param("page") Page<ApplyCrabManDto> page);


xml:这时候参数就能一一对应了
<select id="findCrabManMsg" resultType="com.kcidea.bms.model.ApplyCrabManDto">
        SELECT us.id,us.name,us.sex,us.phone,us.login_ip,us.login_time,acm.service_start_date,acm.service_end_date
        FROM apply_crab_man acm  LEFT JOIN `user` us ON acm.crab_man_id=us.id
        WHERE acm.brand_office_id=#{brandOfficeId} AND acm.body_id=#{bodyId} AND acm.del=1
        <if test="name!=null and name!=''">
            AND acm.name like CONCAT('%',#{name},'%')
        </if>
    </select>
    }

之前控制台报错说 Paramer name找不到是因为自己虽然controller新建了applyCrabManDto用于接用户输入在文本框的内容,但我Dao层那写的是List<ApplyCrabManDto> findCrabManMsg(@Param("bodyId") String bodyId,@Param("brandOfficeId") String brandOfficeId, @Param("page") Page<ApplyCrabManDto> page);可以看出我没有把name的内容传到xml里,控制台就报错了,说没有 Paramer name

  1. 前台日期时间传值后台,控制台报错MistypeMatch的原因是,我在DTO文件中对文件的 @DateTimeFormat(pattern = “yyyy-MM-dd”)
    @JsonFormat(timezone = “GMT+8”,pattern = “yyyy-MM-dd”)两个注解的yyyy-MM-dd后面加了一个空格,计算机就将其解析为了String格式。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值