mybatisplus修改单个属性_Mybatis Plus 中 参数传递的优化之路
從項目開始使用 Mybatis Plus 到現(xiàn)在,對 Mapper 傳遞參數(shù)的方式做了多個版本的改進和優(yōu)化。這篇文章主要講解在改版和優(yōu)化過程中遇到的問題,以及當時的一些想法。
第一版:單個參數(shù)傳遞
傳遞方式如下:
UserMapper.java
ListUserMapper.xml
<!--查詢所有用戶信息-->注:項目開始階段,功能比較簡單,需求也比較簡單,所以沒有使用太多查詢條件。
第二版:多個參數(shù)傳遞
在此先說下錯誤的使用方式:
List報錯信息如下:
"nested exception is org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]"報錯的原因是:這樣的傳參方式,Mybatis 是無法識別參數(shù)名的,必須進行參數(shù)綁定。具體原因可以自行上網(wǎng)查詢。
正確的傳參方式需要把每一個參數(shù)與 Mapper.xml 中的參數(shù)進行綁定,如下:
ListUserMapper.xml
<!--查詢所有用戶信息-->第三版:優(yōu)化多參數(shù)傳遞
當參數(shù)特別多的時候,你會發(fā)現(xiàn)整個參數(shù)列表會寫得很長。這時候就想,能不能通過一個對象去傳參數(shù)
UserMapper.java
ListUserMapper.xml
<!--查詢所有用戶信息-->第四版:再次優(yōu)化多參數(shù)傳遞
雖然第三版已經(jīng)夠精簡了,但是有個問題。所有的參數(shù)都必須放進一個對象中,這個對象勢必非常臃腫。如果使用多個對象進行傳遞,又會出現(xiàn)之前的問題,參數(shù)列表中的參數(shù)過多。
想到在修改第二版的時候,有個報錯,報錯信息如下:
"nested exception is org.apache.ibatis.binding.BindingException: Parameter 'name' not found. Available parameters are [arg2, arg1, arg0, param3, param1, param2]"通過網(wǎng)上查找得知,Mybatis 的參數(shù)映射方式是通過 Map。于是修改為以下的版本。
UserServiceImpl.java
publicUserMapper.java
ListUserMapper.xml
<!--查詢所有用戶信息-->改版大致經(jīng)歷了以上四個過程,希望能對大家有所幫助。
如果文章有幫助到了你,歡迎點贊、轉(zhuǎn)發(fā)。
如果文章有錯誤的地方,歡迎留言交流。
總結(jié)
以上是生活随笔為你收集整理的mybatisplus修改单个属性_Mybatis Plus 中 参数传递的优化之路的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: html转word保留样式_译员必备 |
- 下一篇: 命令行避免输入错误文件名_GitHub