Mybatis Plus 增删改查的实现(小白教程)

MyBatis Plus 是基于 MyBatis 的增强工具,简化了 MyBatis 的使用,提供了很多增强功能。相比于原生 MyBatis,MyBatis Plus 更加易用,使用 MyBatis Plus 可以加快开发效率。本文主要介绍如何使用 MyBatis Plus 进行常见的增删改查操作。

安装 MyBatis Plus

要使用 MyBatis Plus,需要在项目中引入 MyBatis Plus 的依赖。

在 Maven 中引入 MyBatis Plus:

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.4.1</version>
</dependency>

在 Gradle 中引入 MyBatis Plus:

implementation 'com.baomidou:mybatis-plus-boot-starter:3.4.1'

配置 MyBatis Plus

在 Spring Boot 项目中,只需要添加以下配置,MyBatis Plus 就可以工作:

mybatis-plus:
  mapper-locations: classpath*:mapper/*.xml

实现增删改查操作

实现插入操作

MyBatis Plus 提供了对插入操作的支持。在实体对象中,使用 @TableId 注解标记字段作为主键,使用 @TableField 注解标记其他字段。

@Data
@AllArgsConstructor
@NoArgsConstructor
@TableName("user")
public class User {

    @TableId(type = IdType.AUTO)
    private Long id;

    @TableField("name")
    private String name;

    @TableField("email")
    private String email;
}

通过 InsertMapper 接口的 insert 方法,可以实现插入操作。

@Autowired
private InsertMapper<User> userInsertMapper;

@Test
void testInsert() {
    User user = new User();
    user.setName("张三");
    user.setEmail("zhangsan@example.com");
    userInsertMapper.insert(user);
}

实现查询操作

MyBatis Plus 提供了对查询操作的支持。通过 SelectMapper 接口的 selectOneselectByIdselectList,可以实现分别查询一个实体、根据主键查询一个实体、查询多个实体的操作。如果是复杂的查询需求,可以使用 MyBatis 的 XML 映射文件进行自定义查询。

@Autowired
private SelectMapper<User> userSelectMapper;

@Test
void testSelectOne() {
    QueryWrapper<User> wrapper = new QueryWrapper<>();
    wrapper.eq("name", "张三");
    User user = userSelectMapper.selectOne(wrapper);
    Assertions.assertNotNull(user);
}

@Test
void testSelectById() {
    Long id = 1L;
    User user = userSelectMapper.selectById(id);
    Assertions.assertNotNull(user);
}

@Test
void testSelectList() {
    List<User> userList = userSelectMapper.selectList(null);
    Assertions.assertTrue(userList.size() > 0);
}

实现更新操作

MyBatis Plus 提供了对更新操作的支持。通过 UpdateMapper 接口的 updateById 方法,可以根据主键更新实体。

@Autowired
private UpdateMapper<User> userUpdateMapper;

@Test
void testUpdate() {
    Long id = 1L;
    User user = userSelectMapper.selectById(id);
    user.setName("李四");
    user.setEmail("lisi@example.com");
    userUpdateMapper.updateById(user);

    User updatedUser = userSelectMapper.selectById(id);
    Assertions.assertEquals(user.getName(), updatedUser.getName());
    Assertions.assertEquals(user.getEmail(), updatedUser.getEmail());
}

实现删除操作

MyBatis Plus 提供了对删除操作的支持。通过 DeleteMapper 接口的 deleteById 方法,可以根据主键删除实体。

@Autowired
private DeleteMapper<User> userDeleteMapper;

@Test
void testDelete() {
    Long id = 1L;
    userDeleteMapper.deleteById(id);

    User user = userSelectMapper.selectById(id);
    Assertions.assertNull(user);
}

小结

本文介绍了如何使用 MyBatis Plus 进行增删改查的操作。MyBatis Plus 提供了非常方便的操作方式,使得开发人员可以更加轻松的完成数据库操作。如果对于 MyBatis Plus 还不太熟悉,建议去官方文档了解更多信息。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Mybatis Plus 增删改查的实现(小白教程) - Python技术站

(0)
上一篇 2023年5月20日
下一篇 2023年5月20日

相关文章

  • java实现图片验证码

    实现Java图片验证码的过程包括三个主要步骤:生成随机字符串、将字符串转化为图片、获取用户输入的验证码并进行验证。下面对这三个步骤分别进行详细的说明。 1. 生成随机字符串 我们可以使用Java的Random类生成指定长度的随机字符串。下面是一个生成6个字符长度的随机字符串的示例代码: Random random = new Random(); String…

    Java 2023年6月15日
    00
  • Spring Boot+微信小程序开发平台保存微信登录者的个人信息

    好的。本文将详细介绍如何使用Spring Boot和微信小程序开发平台来保存微信登录者的个人信息。 1. 创建小程序应用 在开始之前,你需要先申请一个微信小程序应用,具体操作请参考微信小程序官方文档。 2. 配置微信小程序开发平台 在微信小程序开发平台中配置小程序的信息。其中,需要配置小程序的 AppID 和 App Secret ,以及配置小程序的登录授权…

    Java 2023年5月20日
    00
  • Java日期时间使用方法汇总

    Java日期时间使用方法汇总 1. 日期时间的格式化 在Java中,可以使用SimpleDateFormat类来格式化日期时间。SimpleDateFormat的常见格式符如下: 符号 含义 yyyy 年份 MM 月份 dd 日期 HH 小时 mm 分钟 ss 秒 下面是一个示例代码: import java.text.SimpleDateFormat; i…

    Java 2023年5月20日
    00
  • Java异常 Factory method’sqlSessionFactory’rew exception;ested exception is java.lang.NoSuchMethodError:

    题目中描述的异常信息 “Factory method ‘sqlSessionFactory’ threw exception; nested exception is java.lang.NoSuchMethodError:” 实际上提供了有用的提示信息,可以作为排除问题的起点。异常信息中的 “Factory method ‘sqlSessionFactor…

    Java 2023年5月27日
    00
  • JSP中的include有几种形式?都有什么区别?

    JSP中的include有两种形式:静态include和动态include。 静态include 静态include是在页面编译时就将包含的文件内容插入到该位置,因此适用于内容不频繁变化的页面。静态include的语法如下: <%@ include file="included.jsp" %> 其中,included.jsp是…

    Java 2023年6月15日
    00
  • 微信小程序 支付后台java实现实例

    下面是详细讲解“微信小程序 支付后台java实现实例”的完整攻略。 一、前置条件 在进行微信小程序支付后台java实现之前,需要先满足以下条件: 在微信公众平台上注册了小程序,并且通过了认证。 微信支付需要使用开通微信支付服务的普通商户号,且已完成相关配置。 开发人员需要了解基本的java开发知识。 二、参考代码 参考代码中使用了SpringBoot框架和M…

    Java 2023年5月23日
    00
  • Java程序命令行参数用法总结

    Java程序命令行参数用法总结 Java程序启动时可以传递命令行参数,这些参数会被Java虚拟机解析并传递给main方法。在程序中可以通过args参数获取到传递的命令行参数。本文将介绍Java程序命令行参数的用法。 获取命令行参数 Java程序获取命令行参数非常简单,只需在main方法的参数列表中添加一个String数组类型的参数即可。例如: public …

    Java 2023年5月23日
    00
  • Struts2学习教程之Action类如何访问WEB资源

    为了让Action类能够访问WEB资源,需要进行以下几个步骤: 1. 在struts.xml中进行配置 在struts.xml中需要配置一个<constant>元素,设置resourceBase属性为需要访问的WEB资源的路径。 示例代码: <constant name="struts.convention.result.path…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部