您现在的位置是:首页 > 文章详情

mybatis采坑记及源码分析

日期:2020-10-24点击:386

mybatis采坑记及源码分析

问题描述

有些需求,需要把上一步批量操作返回的主键作为下个表的关联使用,这个时候用mybatis批量操作,mybatis批量操作有些版本不能返回主键,只能一个一个的插入,这样就降低了效率。

问题跟踪

跟踪1

mybatis的主线版本,能够正确返回主键id,主线版本修复了这个问题,并且@Param可以自定义命名
mybatis采坑记及源码分析
可以自己自定义集合属性名字
mybatis采坑记及源码分析
执行成功并返回主键id
mybatis采坑记及源码分析

跟踪2

mybais的3.3.x-3.4.x源码里面判断参数的属性,并设值br/>在这些版本是修复了这个问题,但是还有限制,@Param只能是list或者是colletions或者是array才能返回id
mybatis采坑记及源码分析
接口方法里面的属性必须是list或者是colletions或者是array才能返回id
mybatis采坑记及源码分析
批量保存方法for里面的属性是list
mybatis采坑记及源码分析

跟踪3

项目如果用mybatis-plus,MybatisDefaultParameterHandler类已经处理了这种情况,如果是自定义的参数会转换成map,然后根据map再进行转换
mybatis采坑记及源码分析
获得参数之后,进行换行处理
mybatis采坑记及源码分析
获取主键属性,进行设值
mybatis采坑记及源码分析

总结

1、有时候出现问题得查看历史版本,并从提交问题单中找到解决的办法,
2、没有解决的方案,就重写框架代码,比如mybatisplus就是重写了ParameterHandler来进行参数的进一步处理。
3、在项目中如果确实没有好的解决办法,那就暂时放下,有空就不断的寻求最佳解决方案

原文链接:https://blog.51cto.com/xxdeelon/2543376
关注公众号

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。

持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。

文章评论

共有0条评论来说两句吧...

文章二维码

扫描即可查看该文章

点击排行

推荐阅读

最新文章