说明:基于 MyBatis 有很多第三方功能插件,这些插件可以完成数据操作方法的封装、数据库逆向工程的生成等。简介
tkMapper 和 MyBatis-plus 都是基于 MyBatis 提供的第三方插件,功能类似,下面介绍 tkMapper 的使用。
tkMapper 的使用需要基于 MyBatis。
tkMapper 提供针对单表通用的数据库操作方法。数据准备
可选优化策略【建议使用】:4. 测试
如果不想每次创建 dao 接口时都继承 tkMapper 中的两个接口,可以自己写一个通用的接口模板,只需要让这个通用的接口模板继承 tkMapper 中的两个接口,然后自己创建的 dao 接口只需要继承这个通用的接口模板即可!
但是,需要注意的是,这个通用的接口模板千万不能写在 dao 目录下!因为 dao 目录下的接口会被扫描到,有固定的功能用处;而我们自定义的通用接口模板只是为了继承,没有其他特殊功能!
使用示例:
1、可在 dao 目录同级创建 general 目录,在 general 目录下创建 GeneralDao 接口,并继承 tkMapper 中的两个接口。2、创建 dao 接口,继承 GeneralDao 即可!复制代码
- package com.luis.general;
- import tk.mybatis.mapper.common.Mapper;
- import tk.mybatis.mapper.common.MySqlMapper;
- /**
- * @Author: Luis
- * @date: 2022/11/9 14:39
- * @description: 自定义的通用接口模板
- */
- public interface GeneralDao<T> extends Mapper<T>, MySqlMapper<T> {
- }
复制代码
- public interface UserDao extends GeneralDao<User> {
- }
说明:所有的关联/多表查询都可以由多个单表查询组成情景:基于以上的用户表,新添加一个订单表 orders,订单表中有订单信息,但是也有用户 id;
关联/多表查询实现方式:
方式一:多次使用单表查询,然后封装数据
方式二:自定义查询方法和 SQL
注意,此处 dao 接口继承的是自定义的通用接口模板,相关说明参见之前创建示例 UserDao 的步骤。
也可以直接继承 tkMapper 的两个接口。(注意灵活运用!)
所谓逆向工程,就是通过数据库表,来自动生成实体类、dao 接口和 mapper 文件。重要说明:本逆向工程使用的 mysql 版本是低版本 5.1.36!经测试,如果使用高版本如 8.xxx,很大概率会生成有问题!所以建议项目中统一使用低版本的 MySQL。
需要注意的是,本逆向工程是最好配合 tkMapper 环境使用,因为,有一些配置和 tkMapper 相关,如生成的 dao 接口会继承自定义的通用接口模板,而该通用的接口模板就是继承了 tkMapper 中的两个接口,从而才能使用 tkMapper 提供的通用数据操作方法;还有,生成的实体类上的注解需要依赖 tkMapper 环境。
欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) | Powered by Discuz! X3.4 |