tk.mybatis 工具包的使用

1. 导入依赖

    <!-- 两个版本选择其中一个即可 -->
	<!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter -->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>4.2.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/tk.mybatis/mapper-spring-boot-starter -->
    <dependency>
        <groupId>tk.mybatis</groupId>
        <artifactId>mapper-spring-boot-starter</artifactId>
        <version>2.1.5</version>
    </dependency>

2. 创建工具接口 BaseMapper

    import tk.mybatis.mapper.common.Mapper;
    import tk.mybatis.mapper.common.MySqlMapper;
    
    // 工具接口 继承 Mapper<T>, MySqlMapper<T>
    public interface BaseMapper<T> extends Mapper<T>, MySqlMapper<T> {

	}

3. 启动类扫描Mapper

​ 必须使用 @MapperScan() 注解扫描 mapper 层

    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import tk.mybatis.spring.annotation.MapperScan;

    @SpringBootApplication
    @MapperScan("com.xxx.mapper")
    public class ExamApplication {
        public static void main(String[] args) {
            SpringApplication.run(ExamApplication.class, args);
        }
    }

4. Mapper层

    // 在所需的 mapper 层继承 BaseMapper 工具包
    public interface Mapper extends BaseMapper<实体类> {
	
	}

5. 实体类和数据库表名以及实体类属性和数据库表字段的映射方式

​	studentManagerEntity => student_manager_entity

​	studentName => student_name

6. 实体类映射数据库

​	1.如果数据库表名与实体类名不一致,使用 @Table 注解来映射表名

​	2.如果添加需要返回主键,使用 @Id 和 @GeneratedValue(strategy = GenerationType.IDENTITY) 注解来映射主键

​	3.如果数据库表中字段名与实体类属性名不一致,使用 @Column 注解来映射

​	4.如果实体类中属性在数据库表中没有该字段,不需要映射该属性的时候,使用 @Transient 注解来修饰,用来忽略该属性

​ 例:

    @Table(name = "数据库表名")
    public class Student {
        @Id
        @GeneratedValue(strategy = GenerationType.IDENTITY)
        private int id;
        
        @Column(name = "stu_name")
        private String studentName;
        
        @Column(name = "stu_age")
        private int age;
        
        @Column(name = "stu_sex")
        private String sex;
        
        private @Transient remarks;

    }

7. tk.mybatis 中常用的方法

查询方法:

1. BaseSelectMapper 下的通用方法
方法名称作用
List selectAll();查询全部数据
T selectByPrimaryKey(Object key);通过主键查询
T selectOne(T record);通过实体查询单个数据
List select(T record);通过实体查询多个数据
int selectCount(T record);通过实体查询实体数量
boolean existsWithPrimaryKey(Object key);通过主键查询此主键是否存在
2. SelectByldsMapper 下的通用方法
方法名称作用
List selectBylds(String var 1);通过多个主键查询数据

添加方法:

1. BaselnsertMapper 下的通用方法
方法名称作用
int insert(T record);全部添加
int insertSelective(T record);选择性(不为null)的添加
2. MySqlMapper 下的通用方法
方法名称作用
int insertList(List list);批量插入
int insertUseGeneratedKeys(T record);如果主键为自增可使用此方法获取添加成功的主键
3. OracleMapper 下的通用方法
方法名称作用
int insertList(List list);批量插入

修改方法:

1. BaseUpdateMapper下的通用方法
方法名称作用
int updateByPrimaryKey(T record);按照实体进行修改
int updateByPrimaryKeySelective(T record);按照实体进行有选择的修改

删除方法:

1. BaseDeleteMapper下的通用方法
方法名称作用
int delete(T record);按照实体进行删除
int deleteByPrimaryKey(Object o);按照主键进行删除
2. ldsMapper下的通用方法
方法名称作用
int deleteBylds(String var 1);按照主键批量删除
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐