mybatisplus修改单个属性_Mybatis Plus 中 参数传递的优化之路

从项目开始使用 Mybatis Plus 到现在,对 Mapper 传递参数的方式做了多个版本的改进和优化。这篇文章主要讲解在改版和优化过程中遇到的问题,以及当时的一些想法。

第一版:单个参数传递

传递方式如下:

UserMapper.java

List

UserMapper.xml

<!--查询所有用户信息-->

注:项目开始阶段,功能比较简单,需求也比较简单,所以没有使用太多查询条件。

第二版:多个参数传递

在此先说下错误的使用方式:

List

报错信息如下:

"nested exception is org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]"

报错的原因是:这样的传参方式,Mybatis 是无法识别参数名的,必须进行参数绑定。具体原因可以自行上网查询。

正确的传参方式需要把每一个参数与 Mapper.xml 中的参数进行绑定,如下:

List

UserMapper.xml

<!--查询所有用户信息-->

第三版:优化多参数传递

当参数特别多的时候,你会发现整个参数列表会写得很长。这时候就想,能不能通过一个对象去传参数

UserMapper.java

List

UserMapper.xml

<!--查询所有用户信息-->

第四版:再次优化多参数传递

虽然第三版已经够精简了,但是有个问题。所有的参数都必须放进一个对象中,这个对象势必非常臃肿。如果使用多个对象进行传递,又会出现之前的问题,参数列表中的参数过多。

想到在修改第二版的时候,有个报错,报错信息如下:

"nested exception is org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]"

通过网上查找得知,Mybatis 的参数映射方式是通过 Map。于是修改为以下的版本。

UserServiceImpl.java

public 

UserMapper.java

List

UserMapper.xml

<!--查询所有用户信息-->

改版大致经历了以上四个过程,希望能对大家有所帮助。


如果文章有帮助到了你,欢迎点赞、转发。

如果文章有错误的地方,欢迎留言交流。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值