使用 mybatisplus条件构造器进行简单的数据库操作

准备阶段
1.实体类(@TableName,与 @TableField很重要)

/**
 * @author: Boss
 * Date: 2021/1/14
 * Time: 10:31
 * Description:
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Builder
@TableName(value = "clue_users")
public class UsersPO {
    @TableId
    private Integer pkId;

    @TableField(value = "user_id")
    private String userId;

    @TableField(value = "user_account")
    private String userAccount;

    @TableField(value = "user_password")
    private String userPassword;

    @TableField(value = "user_name")
    private String userName;

}

2.mapper (主要是要继承extends BaseMapper)

/**
 * @author: Boss
 * Date: 2021/1/14
 * Time: 16:34
 * Description:
 */
public interface UserMapper extends BaseMapper<UsersPO> {


}

3.进行操作

@Api(tags = {"测试接口"})
@Slf4j
@RestController
@RequestMapping("/test")
public class TestController {

    @Autowired
    private UserMapper userMapper;

    @GetMapping("/test1")
    public ResponseVO<Object> test1() {

        //查询1(QueryWrapper)(直接写列名)
        QueryWrapper<UsersPO> usersPOQueryWrapper = new QueryWrapper<>();
        usersPOQueryWrapper.select("user_id", "user_account")
                .eq("user_id", "USER-f519c").or().eq("user_id", "USER-b5fdc");
        List<UsersPO> objs = userMapper.selectList(usersPOQueryWrapper);
        objs.forEach(System.out::println);

        //查询2(LambdaQueryWrapper)(传函数mybatisplus会自动获取列名)
        LambdaQueryWrapper<UsersPO> usersPOLambdaQueryWrapper = new LambdaQueryWrapper<>();
        usersPOLambdaQueryWrapper.select(UsersPO::getUserId, UsersPO::getUserName)
                .eq(UsersPO::getUserId, "USER-f519c").or().eq(UsersPO::getUserId, "USER-b5fdc");
        List<UsersPO> objs2 = userMapper.selectList(usersPOLambdaQueryWrapper);
        objs2.forEach(System.out::println);

        //删除
        usersPOLambdaQueryWrapper.eq(UsersPO::getUserId, "USER-f519c");
        userMapper.delete(usersPOLambdaQueryWrapper);


        //更新1(UpdateWrapper)(直接写列名)
        UpdateWrapper<UsersPO> usersPOUpdateWrapper = new UpdateWrapper<>();
        usersPOUpdateWrapper.eq("user_id", "USER-f519c").set("user_id", "1-1-d-1");
        userMapper.update(null, usersPOUpdateWrapper);

        //更新2(LambdaUpdateWrapper)(传函数mybatisplus会自动获取列名)
        LambdaUpdateWrapper<UsersPO> usersPOLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
        usersPOLambdaUpdateWrapper.eq(UsersPO::getUserId, "USER-f519c").set(UsersPO::getUserId, "1-1-d-1");
        userMapper.update(null, usersPOLambdaUpdateWrapper);

        return ResponseVO.buildSuccess();
    }

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MyBatis-Plus 的条件构造器可以让我们在进行数据库操作时,更加方便快捷地构建 SQL 语句,具有以下特点: - 支持链式调用 - 友好的 API - 安全的 SQL 拼接 - 支持 lambda 表达式 - 支持自定义 SQL 片段 下面是 MyBatis-Plus 条件构造器使用方法: 1. 导入 MyBatis-Plus 的依赖: ```xml <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>${mybatis-plus.version}</version> </dependency> ``` 2. 创建 QueryWrapper 对象: ```java QueryWrapper<User> queryWrapper = new QueryWrapper<>(); ``` 3. 添加查询条件: ```java // eq 等于 queryWrapper.eq("name", "张三"); // ne 不等于 queryWrapper.ne("age", 18); // gt 大于 queryWrapper.gt("age", 20); // ge 大于等于 queryWrapper.ge("age", 18); // lt 小于 queryWrapper.lt("age", 30); // le 小于等于 queryWrapper.le("age", 30); // between 区间查询 queryWrapper.between("age", 18, 30); // like 模糊查询 queryWrapper.like("name", "张"); // or 或者 queryWrapper.or(wrapper -> wrapper.eq("age", 18).ne("name", "张三")); // in 包含 queryWrapper.in("age", Arrays.asList(18, 20, 22)); // notIn 不包含 queryWrapper.notIn("age", Arrays.asList(24, 26, 28)); // isNull 空 queryWrapper.isNull("email"); // isNotNull 非空 queryWrapper.isNotNull("email"); // orderBy 排序 queryWrapper.orderByDesc("age"); // last 拼接 SQL 片段 queryWrapper.last("limit 10"); ``` 4. 执行查询: ```java List<User> userList = userMapper.selectList(queryWrapper); ``` 以上就是 MyBatis-Plus 条件构造器使用方法,更多的查询条件可以参考官方文档。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值