现有一个需要手动设置ID的需求,同时还能够兼容ID自增
原有设计
原有插入代码
生成的SQL
INSERT INTO request_system ( channel_name) VALUES (?)
以之前(上图)的设计来看,只能够满足ID自增,即使给待插入的实体类中设置ID字段,也无法采用设置的ID,还是会自增一个ID
直接跳到结论即可
需要探究的问题:在BaseMapper调用insert方法后
关键在最后的TableInfo表 5.9
sqlMethod决定了SQL模板
columnScript是参数模板
columnScript是参数值模板
测试结论:如果type类型为Type.AUTO,不会将主键ID增加到SQL的拼接中
会默认设置ID(根据雪花算法)
编写XXXMapper.xml,在xml中编写SQL语句进行ID插入
修改插入语句(改为调用mapper的方式去插入)
https://juejin.cn/post/6844904142658338829
感谢大家看到这里,文章有不足,欢迎大家指出;如果你觉得写得不错,那就给我一个赞吧,欢迎大家关注和收藏转发文章!
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务