【MybatisPlus快速入门】(2)SpringBoot整合MybatisPlus 之 标准数据层开发 代码示例

目录

  • [1 标准CRUD使用](#1 标准CRUD使用)
  • [2 新增](#2 新增)
  • [3 删除](#3 删除)
  • [4 修改](#4 修改)
  • [5 根据ID查询](#5 根据ID查询)
  • [6 查询所有](#6 查询所有)
  • [7 MyBatis-Plus CRUD总结](#7 MyBatis-Plus CRUD总结)

之前我们已学习MyBatisPlus在代码示例与MyBatisPlus的简介,在这一节中我们重点学习的是数据层标准的CRUD(增删改查)的实现与分页功能。代码比较多,我们一个个来学习,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及 IDEA配置Maven环境

1 标准CRUD使用

对于标准的CRUD功能都有哪些以及MP都提供了哪些方法可以使用呢?

我们先来看张图:

对于这张图的方法,我们挨个来演示下:

首先说下,案例中的环境就是咱们入门案例的内容,第一个先来完成新增功能

2 新增

在进行新增之前,我们可以分析下新增的方法:

java 复制代码
int insert (T t)
  • T:泛型,新增用来保存新增数据
  • int:返回值,新增成功后返回1,没有新增成功返回的是0

在测试类中进行新增操作:

java 复制代码
@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {
	@Autowired
	private UserDao userDao;
	@Test
	void testSave() {
		User user = new User();
		user.setName("j0ck");
		user.setPassword("123456");
		user.setAge(4112);
		user.setTel("18812345678");
		userDao.insert(user);
	}
}

执行测试后,数据库表中就会添加一条数据。

3 删除

在进行删除之前,我们可以分析下删除的方法:

java 复制代码
int deleteById (Serializable id)
  • Serializable:参数类型
    • 思考:参数类型为什么是一个序列化类?

      从这张图可以看出,
  • String和Number是Serializable的子类,
  • Number又是Float,Double,Integer等类的父类,
  • 能作为主键的数据类型都已经是Serializable的子类,
  • MP使用Serializable作为参数类型,就好比我们可以用Object接收任何数据类型一样。
  • int:返回值类型,数据删除成功返回1,未删除数据返回0。
  • 在测试类中进行新增操作:
java 复制代码
@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {
	@Autowired
	private UserDao userDao;
	@Test
	void testDelete() {
		userDao.deleteById(1401856123725713409L);
	}
}

4 修改

在进行修改之前,我们可以分析下修改的方法:

java 复制代码
int updateById(T t);
  • T:泛型,需要修改的数据内容,注意因为是根据ID进行修改,所以传入的对象中需要有ID属性值
  • int:返回值,修改成功后返回1,未修改数据返回0
    在测试类中进行新增操作:
java 复制代码
@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {
	@Autowired
	private UserDao userDao;
	@Test
	void testUpdate() {
		User user = new User();
		user.setId(1L);
		user.setName("Tom888");
		user.setPassword("tom888");
		userDao.updateById(user);
	}
}

说明:修改的时候,只修改实体对象中有值的字段。

5 根据ID查询

在进行根据ID查询之前,我们可以分析下根据ID查询的方法:

java 复制代码
T selectById (Serializable id)
  • Serializable:参数类型,主键ID的值
  • T:根据ID查询只会返回一条数据

在测试类中进行新增操作:

java 复制代码
@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {
	@Autowired
	private UserDao userDao;
	@Test
	void testGetById() {
		User user = userDao.selectById(2L);
		System.out.println(user);
	}
}

6 查询所有

在进行查询所有之前,我们可以分析下查询所有的方法:

java 复制代码
List<T> selectList(Wrapper<T> queryWrapper)
  • Wrapper:用来构建条件查询的条件,目前我们没有可直接传为Null
  • List:因为查询的是所有,所以返回的数据是一个集合

在测试类中进行新增操作:

java 复制代码
@SpringBootTest
class Mybatisplus01QuickstartApplicationTests {
	@Autowired
	private UserDao userDao;
	@Test
	void testGetAll() {
	List<User> userList = userDao.selectList(null);
		System.out.println(userList);
	}
}

我们所调用的方法都是来自于DAO接口继承的BaseMapper类中。里面的方法有很多,我们后面会慢慢

去学习里面的内容。

7 MyBatis-Plus CRUD总结

MybatisPlus是一个基于Mybatis的增强工具,提供了很多方便开发的功能,其中包括CURD(增删改查)操作。以下是MybatisPlus的CURD操作的总结:

  1. 增加操作(Create):

    • 使用MybatisPlus的Mapper接口的insert方法:mapper.insert(entity);
    • 使用MybatisPlus的BaseMapper接口的insert方法:baseMapper.insert(entity);
  2. 查询操作(Retrieve):

    • 使用MybatisPlus的Mapper接口的selectById方法:mapper.selectById(id);
    • 使用MybatisPlus的BaseMapper接口的selectById方法:baseMapper.selectById(id);
    • 使用MybatisPlus的Mapper接口的selectList方法:mapper.selectList(queryWrapper);
    • 使用MybatisPlus的BaseMapper接口的selectList方法:baseMapper.selectList(queryWrapper);
    • 使用MybatisPlus的Mapper接口的selectOne方法:mapper.selectOne(queryWrapper);
    • 使用MybatisPlus的BaseMapper接口的selectOne方法:baseMapper.selectOne(queryWrapper);
    • 使用MybatisPlus的Mapper接口的selectPage方法:mapper.selectPage(page, queryWrapper);
    • 使用MybatisPlus的BaseMapper接口的selectPage方法:baseMapper.selectPage(page, queryWrapper);
  3. 更新操作(Update):

    • 使用MybatisPlus的Mapper接口的updateById方法:mapper.updateById(entity);
    • 使用MybatisPlus的BaseMapper接口的updateById方法:baseMapper.updateById(entity);
    • 使用MybatisPlus的Mapper接口的update方法:mapper.update(entity, queryWrapper);
    • 使用MybatisPlus的BaseMapper接口的update方法:baseMapper.update(entity, queryWrapper);
  4. 删除操作(Delete):

    • 使用MybatisPlus的Mapper接口的deleteById方法:mapper.deleteById(id);
    • 使用MybatisPlus的BaseMapper接口的deleteById方法:baseMapper.deleteById(id);
    • 使用MybatisPlus的Mapper接口的delete方法:mapper.delete(queryWrapper);
    • 使用MybatisPlus的BaseMapper接口的delete方法:baseMapper.delete(queryWrapper);

以上就是MybatisPlus的CURD操作的总结,通过使用MybatisPlus提供的增强工具,可以简化数据库操作的开发工作。

相关推荐
追逐时光者39 分钟前
一款基于 Ant Design 设计语言实现、漂亮的 .NET Avalonia UI 控件库
后端·.net
22:30Plane-Moon40 分钟前
项目1总结其三(图片上传功能)
ide·spring boot·vue
qq_589568101 小时前
javaweb开发笔记—— 前端工程化
java·前端
码农小灰1 小时前
Kafka消息持久化机制全解析:存储原理与实战场景
java·分布式·kafka
向上的车轮2 小时前
Spring Boot生态中ORM对数据治理的支持有哪些?
spring boot·数据治理·orm
程序员鱼皮2 小时前
太香了!我连夜给项目加上了这套 Java 监控系统
java·前端·程序员
笃行3503 小时前
从零开始:SpringBoot + MyBatis + KingbaseES 实现CRUD操作(超详细入门指南)
后端
该用户已不存在3 小时前
这几款Rust工具,开发体验直线上升
前端·后端·rust
用户8356290780513 小时前
C# 从 PDF 提取图片教程
后端·c#
L2ncE3 小时前
高并发场景数据与一致性的简单思考
java·后端·架构