Mybaitis插件现在大家应该用的很多了,简单的单表查询,修改,新增都可以胜任,没必要我们之前自己苦哈哈的自己去写对应SQL语句,一方面重复性太高,没啥技术含量,而且写的太多了,弄的mapper文件特别长,维护阅读起来都很麻烦。
我们只是在一些需要联表或者处理逻辑处理某些字段时去定义mapper里面的SQL(不要想着可以脱离SQL,这是不可能的。业务足够复杂,SQL还是很好用的,本身支持的一些函数会帮助你在代码中简化逻辑)
最常用的mybatis插件有mybaitis plus和tk mybatis,这两个实际有很多地方是相同的,可能有些相同的操作就是名字不一样而已(我的微信公众号:我是坑货),我这里以我项目中tk mybatis来举例子。
在tk mybatis里面不管你时用的自增主键insertUseGeneratedKeys还是直接insert进去,返回的结果可能是insert操作的影响行数,而你想要的是返回主键Id。
这时候我们只要在你的对应DAO层entity(就是你mapper文件对应的那个文件)加上如下的两个注解:@Id和 @GeneratedValue(generator = “JDBC”),我的微信公众号:我是坑货,这俩缺一不可
@Id
@GeneratedValue(generator = "JDBC")
@JSONField(name = "erpCustomerId")
private Long id;
这时候可以通过对象直接获取id像下面代码所示:
erpCustomerMapper.insertUseGeneratedKeys(erpCustomerDO);
Long id = erpCustomerDO.getId();
希望这个能对插件了解不够很清楚的小伙伴有用处,不要自己去写SQL走冤枉路。
我的微信公众号:我是坑货