使用Mybatis-Plus简化CRUD开发

介绍

MyBatis-Plus (简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
官网: https://mp.baomidou.com/guide/

特性

简单来说, 我们可以通过一些简单的配置, 实现大部分单表的CRUD操作, 同时内置了分页插件, 可以大幅度简化我们的开发工作

依赖

(引入mybatis-plus后, 无需再引入mybatis的依赖)

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

配置

只需将 application.yml 中的 mybatis配置头 改成 mybatis-plus
在这里插入图片描述

使用

使用 Mybatis-Plus 非常简单,只需要做一些简单的改动就能实现大部分的CRUD操作,如果有复杂的sql操作,也可以按照mybatis的方式自定义*Mapper.xml

1. POJO类代码

@Data // 这里使用了lombok插件
@TableName("t_user") // 类名和表明不匹配时,使用TableName指定
public class User {
	@TableId(type = IdType.AUTO) // 指定主键字段并设置自增方式
	private Integer id;

	@TableField(value = "t_user_name") // 字段名和属性名不匹配时,使用TableField指定
	private String username;

	private String email;
}

2. Dao层代码

BaseMapper中定义了很多基本的单表操作,继承BaseMapper即可实现简单的CRUD

public interface UserDao extends BaseMapper<User> {
}

3. QueryWrapperd的使用

/* 1. 使用映射对象作为条件 */
User user = new User().setAge(18);
QueryWrapper<User> uqw = new QueryWrapper<>(user);
List<User> users = userDao.selectList(uqw);

/* 2. QueryWrapper设置条件 */
uqw = new QueryWrapper<>();
uqw.gt("age", 18).or().lt("age", 24);
users = userDao.selectList(uqw);

uqw = new QueryWrapper<>();
uqw.eq("age", 20).isNotNull("name"); // 默认用 and 拼接
users = userDao.selectList(uqw);

/* 3. 动态sql */
uqw = new QueryWrapper<>();
Integer age = user.getAge();
boolean ageNotEmpty = Objects.nonNull(age) && age >= 0; // 可以用一个布尔值控制是否拼接条件
uqw.eq(ageNotEmpty,"age", age);
users = userDao.selectList(uqw);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值