使用tkMapper进行增删改查

简介: 使用tkMapper进行增删改查

0. tkMapper引入

  1. tkMapper就是一个MyBatis插件,是在MyBatis的基础上提供了很多工具,让开发变得简单,提高开发效率。
  2. 引入依赖:
<dependency>
   <groupId>tk.mybatis</groupId>
   <artifactId>mapper-spring-boot-starter</artifactId>
   <version>${tk.mybatis.version}</version>
</dependency>


创建一个与数据库表相匹配的实体类,如:

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class StudentInfo {
      @Id
      private Long id;
      /**
       * 姓名
       */
      private String name;
      /**
       * 手机号
       */
      private String mobile;
      /**
       * 学号
       */
      private String studentId;
      /**
       * 班级编号
       */
      private String classId;
      /**
       * 创建时间
       */
      private Date ctime;
      /**
       * 更新时间
       */
      private Date mtime;
      /**
       * 删除标志 0:未删除 1:删除
       */
      private Integer deleted_status;
}


4.创建mapper接口:

public interface StudentInfoMapper<StudentInfo> extends Mapper<StudentInfo>, MySqlMapper<StudentInfo>, BatchMapper<StudentInfo>, GroupMapper<StudentInfo> {
}
  1. 接下来为大家简要介绍一下几种常用的tkMapper的增删改查方法,还有很多没有介绍到,大家可以移步tkMapper官方文档获取更加详细的信息~


1. 插入数据

1.1. insert

使用insert,如果数据的某项值为null,则会直接向数据库表中的对应列插入null,不推荐使用。

StudentInfo info = StudentInfo.builder()
  .name("Zhangsan")
  .mobile("12312341234")
  .build();
studentInfoMapper.insert(info);


比如上面这种写法,插入数据库中的该条记录的其他字段将会是null

1.2. insertSelective

使用insertSelective,如果数据的某项值为null,则会直接向数据库表中的对应列插入数据库表设定的默认值,推荐使用。

StudentInfo info = StudentInfo.builder()
  .name("Zhangsan")
  .mobile("12312341234")
  .build();
studentInfoMapper.insertSelective(info);


比如上面这种写法,插入数据库中的该条记录的其他字段将会是数据库表的默认值;

1.3. insertList

使用insertList,可以一次性向数据库表中插入多条记录。

List<StudentInfo> infoList = XXXX;
studentInfoMapper.insertList(infoList);


2. 查询数据

2.1. selectAll

使用selectAll,直接查询出所有数据。

List<StudentInfo> infoList = studentInfoMapper.selectAll();

2.2 selectByPrimaryKey

使用selectByPrimaryKey,根据主键进行查询。

StudentInfo info = studentInfoMapper.selectByPrimaryKey(15);

2.3. 使用selectByExample / selectOneByExample进行条件查询

详见另一篇文章:tkMapper之使用Weekend拼接条件进行条件查询


2.4. 分页查询

详见另一篇文章:MyBatis之使用PageHelper插件进行分页查询


3. 更新数据

3.1. updateByExampleSelective

如果我们想根据学生的学号对学生信息进行更新,那么我们可以使用如下方式:

Weekend<StudentInfo> weekend = Weekend.of(StudentInfo.class);
WeekendCriteria<StudentInfo, Object> weekendCriteria = weekend.weekendCriteria();
weekendCriteria.andEqualTo(StudentInfo::getStudentId, studentId);
weekendCriteria.andEqualTo(StudentInfo::getDeletedStatus, 0);
StudentInfo info = studentInfoMapper.selectOneByExample(weekend);
if (Objects.isNull(info)) {
    throw new 这里可以自定义异常抛出;
}
StudentInfo infoNeedToUpdate = 需要更新的数据;
studentInfoMapper.updateByExampleSelective(infoNeedToUpdate, weekend);


先进行查询,确保要更新的数据是存在的,再进行更新;

4. 删除数据

一般在业务中,禁止使用物理删除,所有我们常用的逻辑删除往往只是更新deletedStatus状态为“已删除”即可,此处应使用更新数据的方法,不再赘述;

目录
相关文章
|
2月前
|
前端开发 Java 数据库连接
javamvc配置,增删改查,文件上传下载。
【10月更文挑战第4天】javamvc配置,增删改查,文件上传下载。
39 1
|
2月前
|
存储 NoSQL API
使用Py2neo进行Neo4j图数据库的增删改查操作
使用Py2neo进行Neo4j图数据库的增删改查操作
97 5
|
2月前
|
数据可视化 API PHP
低代码开发工具-学生管理系统-老师管理增删改查实现
低代码开发工具-学生管理系统-老师管理增删改查实现
39 5
|
3月前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
2月前
|
JavaScript 前端开发 测试技术
[新手入门]todolist增删改查:vue3+ts版本!
【10月更文挑战第15天】[新手入门]todolist增删改查:vue3+ts版本!
|
3月前
|
SQL 关系型数据库 MySQL
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
本文介绍了在ThinkPHP6框架中如何连接和使用数据库进行增删改查操作。内容包括配置数据库连接信息、使用Db类进行原生MySQL查询、find方法查询单个数据、select方法查询数据集、save方法添加数据、insertAll方法批量添加数据、insertGetId方法添加数据并返回自增主键、delete方法删除数据和update方法更新数据。此外,还说明了如何通过数据库配置文件进行数据库连接信息的配置,并强调了在使用Db类时需要先将其引入。
ThinkPHP6 连接使用数据库,增删改查,find,select,save,insert,insertAll,insertGetId,delete,update方法的用法
|
2月前
|
Java API 数据库
Data jpa 增删改查的方法分别有哪些
Data jpa 增删改查的方法分别有哪些
|
4月前
|
SQL 数据库连接 API
ThinkPHP6实现增删改查接口
ThinkPHP6实现增删改查接口
50 1
|
4月前
|
XML 数据库 数据格式
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
这篇文章是Spring5框架的实战教程的终结篇,介绍了如何使用注解而非XML配置文件来实现JdbcTemplate的数据库操作,包括增删改查和批量操作,通过创建配置类来注入数据库连接池和JdbcTemplate对象,并展示了完全注解开发形式的项目结构和代码实现。
Spring5入门到实战------14、完全注解开发形式 ----JdbcTemplate操作数据库(增删改查、批量增删改)。具体代码+讲解 【终结篇】
|
4月前
|
SQL XML Java
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】
这篇文章是Spring5框架的实战教程,详细讲解了如何使用JdbcTemplate进行数据库的增删改查操作,包括在项目中引入依赖、配置数据库连接池、创建实体类、定义DAO接口及其实现,并提供了具体的代码示例和测试结果,最后还提供了完整的XML配置文件和测试代码。
Spring5入门到实战------12、使用JdbcTemplate操作数据库(增删改查)。具体代码+讲解 【上篇】