一. 简介
tkMapper是⼀个MyBatis插件,是在MyBatis的基础上提供了很多工具,让开发变得简单,提高开发效率。
- 提供了针对单表通用的数据库操作方法
- 逆向工程(根据数据表生成实体类、mapper接口、映射文件)这里不做介绍
二、集成mybatis&tkmapper
2.1、所需依赖
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.2.0</version>
</dependency>
<dependency>
<groupId>tk.mybatis</groupId>
<artifactId>mapper-spring-boot-starter</artifactId>
<version>2.1.5</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
2.2、配置yml
spring:
datasource:
driverClassName: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=Asia/Shanghai
username: root
password: root
mybatis:
mapper-locations: classpath:mappers/*Mapper.xml
type-aliases-package: com.lkl.tkmapper.entity
mybatis主要配置mapper映射文件及实体类别名包配置
2.3、主启动类上加注解扫描
三、基本使用
3.1、创建BaseMapper接口
tkMapper已经完成了对单表的通用操作的封装,封装在Mapper接口和MySqlMapper接口;因此如果我们要完
成对单表的操作,只需自定义Mapper接⼝继承Mapper接口和MySqlMapper接口
创建基础mapper接口继承Mapper接口和MySqlMapper接口以供其他接口直接继承
/**
* tkmapper的公共接口 供其它接口继承
*
* @author likelong
* @date 2022/8/5
*/
public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> {
}
3.2、entity实体层
先看数据库表结构,数据库user表
对应实体类,使用tkmybaist时要给实体类注解,比如说@Table就是表名【类注解】,@Id就是主键,@Column就是列【属性注解】。(符合命名规则则可以省去这些注解,如下实体类)
这里值得注意的是表的列名和类的字段名的对比,比如说我表的字段名是user_name,那么映射成类的字段应该是userName,符合驼峰命名法!
@Data
public class User {
@Id
private Integer id;
private String userName;
private String password;
private String address;
private String phone;
}
3.3、mapper持久层
创建接口直接继承我们的BaseMapper接口即可
public interface UserMapper extends BaseMapper<User> {
}
3.4、service服务层
服务层接口
/**
* @author likelong
* @date 2022/8/6
*/
public interface UserService {
User getById(int id);
List<User> list();
}
服务层实现类,UserMapper接口此时就具备单表的基本增删改查操作
/**
* @author likelong
* @date 2022/8/6
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UserMapper userMapper;
@Override
public User getById(int id) {
return userMapper.selectByPrimaryKey(id);
}
@Override
public List<User> list() {
return userMapper.selectAll();
}
}
四、测试
userMapper具备单表的基本增删改查操作(因为所有的接口都继承自Mapper<T>, MySqlMapper<T>
,这2个接口中封装好了所有的单表操作,直接调用相关方法即可。),如下:
五、注意:
此时的UserMapper仅具备单表的基本增删改查操作,如若有多表关联操作时,也可以在mapper映射文件中直接编写相关的sql脚本即可(规则同mybatis一致)。
参考资料