tk mybatis 多表查询_关于使用tk.mybatis 遇到的坑

tk.mybatis简化了数据库操作,但在实际使用中存在一些需要注意的问题。启动类需使用tk.mybatis.spring.annotation.MapperScan,根Mapper不应被扫描,应与普通Mapper分包。继承根Mapper时,泛型需与数据库表对应,表名或字段名不一致时需使用@Table和@Column注解进行映射。
摘要由CSDN通过智能技术生成

tk.mybatis这个第三方插件帮助我们封装了很多的方法,我们只需要在pom.xml导入相应的依赖即可。在新建的根mapper中继承相应的接口(Mapper,MysqlMapper等),很多curd包括条件查询/分页查询就不需要我们动手写相应的sql了,是不是感觉很简单上手,本人实际使用过程中遇到的坑不少,特此列举出来,方便各位同学参考,少走弯路.

7f697075ebcae66bc073afe399b47a20.png

该插件已经纳入springboot starter 第三方库

一.启动类中的注解MapperScan 引入的是tk.mybatis.spring.annotation.MapperScan,而不是之前默认的org.mybatis.spring.annotation.MapperScan,大家一定擦亮眼睛

0d53bddd2b7ef02ea23b43fb5d9a400d.png

二.根Mapper(或者BaseMapper等)一定不能被上述注解MapperScan 扫描到,所以一般将根mapper和其他的mapper区分放在不同的包路径下,确保启动不能被扫描到.我这边是新建的common.mapper包.

84e07c3e4a0dcd9b335f30e0efe5b882.png

三.其他mapper在继承根mapper时,填写对应的泛型一定要与数据库相应的表一一对应,如果表名和字段与泛型对应的实体类类名,属性名不一致时,需要使用注解Table和Column做转换。

efc3346196c7a70e3ac4a560a643b40d.png

例如,上述图片中对应的实体类是UserModel,如果不做相应的表映射,tk那边会默认从user_model 这张表中去获取数据,也许你的表名不是这个,所以此处就需要标注映射的表名,如下所示。

f153b86d56006db1a4f20d557102ee29.png

当然,字段名如果和实体类的属性完全一致,则可以忽略不写注解.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值