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
<!--查询所有用户信息-->
改版大致经历了以上四个过程,希望能对大家有所帮助。
如果文章有帮助到了你,欢迎点赞、转发。
如果文章有错误的地方,欢迎留言交流。
mybatisplus修改单个属性_Mybatis Plus 中 参数传递的优化之路相关推荐
- mybatisplus修改单个属性_第二节 官封弼马温——类的属性
<西游记>第2集 官封弼马温 美猴王战胜了混世魔王,花果山上喜气洋洋,小猴们每日操演武艺,十分快乐.悟空闯入东海龙宫,向龙王索取镇海神针--如意金箍棒.这棒虽重一万三千五百斤,却大可撑天着 ...
- python定义私有变量的方法_Python怎么修改私有属性 如何访问python类中的私有方法...
python 类为什么不能定义私有属性和方法 因为b.name[0] = 'zhang'修改的是类属性,类属性是全局的,所有的实例共享,如果想私有化,可以添加 def __init__( self ) ...
- VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题
VUE项目中使用this.$forceUpdate();解决页面v-for中修改item属性值后页面v-if不改变的问题 参考文章: (1)VUE项目中使用this.$forceUpdate();解决 ...
- MySQL中修改列属性时造成comment属性丢失
修改字段定义的时候,要把整个字段的全部的定义都写上,举个栗子: 原字段定义: state varchar(50) NOT NULL DEFAULT '' COMMENT '产品资料状态' 需求:修改 ...
- core修改模型属性中的默认单位
今天记录croe如何修改模型属性的默认单位.我们都知道,单纯修改模型属性中的单位选项,只对本次打开的模型起到作用,当我们关闭该模型或关闭软件时,又需要重新设置单位值.不废话,直接上图: 1.点击选项 ...
- 微信小程序如何实现通过js修改wxml的for循环中的属性值
微信小程序如何实现通过js修改wxml的for循环中的属性值 要实现的效果 具体代码 要实现的效果 点击每一个活动选项,实现显示对应的操作按钮 具体代码 首先要在对应页面的js中给data中定义数组, ...
- Vue中鼠标悬停更换图片/文字内容,动态展示/修改某些属性
Vue中鼠标悬停更换图片/文字内容,动态展示/修改某些属性 鼠标悬停时:@mouseenter 鼠标离开时:@mouseleave 利用以上来绑定相应方法,例如: <div @mouseleav ...
- 如何为neo4j中的【关系】添加or修改【属性】?
如何为neo4j中的[关系]添加or修改[属性]? 为neo4j中的[关系]添加or修改[属性] 在neo4j中创建包含"一对多"[属性]的[关系] 为neo4j中的[关系]添加o ...
- linux中更新python_linux下面升级 Python版本并修改yum属性信息
最近需要在linux下使用python,故需要升级一下python版本,上网查询了一下相关资料,更新了一下linux下面的python环境,记录如下: linux下面升级 Python版本并修改yum ...
最新文章
- linux sh 改 cmd
- 使用VisualStudio2010连接CodePlex进行代码管理
- 栈之顺序结构和链式结构
- Python拼接字符串的7种方法总结
- 为什么服务器要选择 Linux,这里总结了 10 大理由
- xml中的Document和Attribute
- 文本分类模型_【文本分类】几个可作为Baseline的模型
- 第三章 Goroutine调度策略(16)
- 二、npm scripts
- java读取ifc文件_IFC文件解析
- java前端弹窗的代码_弹出窗口的html的代码是怎么写的?
- java 原子量_Java多线程-新特征-原子量
- Dojo Shifter 2 for Mac(ae效果图层处理插件)
- 投资理财启蒙之定投出一个千万富翁?
- 中国诺贝尔物理学奖所有获得者名单(转)
- Biotin-STL,PL;生物素化马铃薯凝集素(STL,PL)
- 以下对linux中线程描述错误的是,2008年9月全国计算机等级三级PC技术真题
- 汇编之中DOS挂盘@[TOC](64位机汇编之中DOS挂盘)
- 为什么高质量计算机书籍几乎都是外国人写的?
- Markdown公式(二)
热门文章
- 16.Hadoop架构再探讨第2部分
- 2.变量/字符串/if/while/数据类型
- 1.我和python的第一次亲密接触
- JQuery 总结(5) 总结各种小应用
- Apache Maven 入门篇
- 程序员面试题精选100题(29)-调整数组顺序使奇数位于偶数前面[算法]
- 跟vczh看实例学编译原理——二:实现Tinymoe的词法分析
- 主成分分析(Principal components analysis)-最大方差解释
- 《大话数据结构》第9章 排序 9.9 快速排序(下)
- cocos2dx游戏开发——微信打飞机学习笔记(三)——WelcomeScene的搭建