关于mybatis-plus代码生成器后做得配置补充

发现问题

使用了MP自带的代码生成器生成代码后,我准备自定义一个mapper去实现动态条件分页查询,按照所有步骤完成后,却发现报错:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)。

解决方法

找了很多网页,首先整理一下遇到这些问题应该排查哪里

我将前面四点都给排查了一遍,也就是说还有最后一个没有排查完,我确实也没有对mp进行这两个配置。配置上之后便不报这个错误了。

 意外的错误

当我以为后面肯定没有问题的时候,现实给了我重重的一击多参数传参出错了,我分别用了我知道的三种方法去尝试,首先第一种是我原本最常用的hashmap传参,但是可能今天除了map,还有一个ipage参数,可能便无法识别出来,也就作罢了,第二个是JavaBean,但是也还是失败了,原因估计跟前一个类似。第三种方法,老老实实的写单个类型参数,例如:

    IPage selectTeacherByCondition(IPage<?> page,String name,Integer level,Date gmtCreateBegin,Date gmtCreateEnd);

这种最后成功了。

意外的经验累积

我因为用到模糊查询,需要用到%这些符号,所以这时候就要非常小心了,不能乱用双引号,我们这时候应该首选的函数,concat函数去进行字符串的拼接,例如:

<select id="selectTeacherByCondition" resultType="cn.yjs.entity.EduTeacher">
        SELECT id,name FROM edu_teacher WHERE is_deleted=0
        <if test="name != null">
            AND name like concat('%',#{name},'%')
        </if>
        <if test="level != null">
            AND level = #{level}
        </if>
        <if test="gmtCreateBegin != null">
            AND gmt_create > #{gmtCreateBegin}
        </if>
        <if test="gmtCreateEnd != null">
            AND gmt_create &lt; #{gmtCreateEnd}
        </if>
    </select>

另外还有一个要注意的是,在mybatis中使用小于号需要用到转意字符。

例如上面例子的&lt;就是<的转义字符。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值