Wrapper 是所有条件构造器的父类,作用是生成条件语句,即where后面的sql子句

在调用查询,更新,删除操作时,需要根据条件进行判断,可以使用条件构造器进行组合条件,生成where后面条件子句

QueryWrapper,UpdateWrapper

LambdaQueryWrapper,LambdaUpdateWrapper

UpdateWrapper提供了set方法,可以设置更新后的数据 QueryWrapper,可以对查询,更新,删除操作进行条件组合

LambdaQueryWrapper、LambdaUpdateWrapper支持Lambda表达式,可以通过Lambda表达式获取到对应的字段,省去字段名的编写

有Lambda前缀的,表示支持Lambda表达式

application.yml

server:

port: 8080

#数据源配置

spring:

datasource:

driver-class-name: com.mysql.cj.jdbc.Driver

url: jdbc:mysql://localhost:3306/mybatisplus212?characterEncoding=utf-8&serverTimezone=UTC

username: root

password: 123456

type: com.zaxxer.hikari.HikariDataSource

mybatis-plus:

configuration:

#配置日志信息

log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

#配置mapper映射文件的位置,默认在类路径/mapper*.xml

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

#设置指定包下所有类设置类型别名

type-aliases-package: com.dzqc.pojo

global-config:

db-config:

#统一设置实体类对应的数据表的默认前缀

table-prefix: t_

#设置主键自增

id-type: auto

Wrapper测试类

package com.dzqc;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;

import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;

import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;

import com.dzqc.pojo.User;

import com.dzqc.service.IUserService;

import org.junit.jupiter.api.Test;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.boot.test.context.SpringBootTest;

import java.util.List;

/**

* 测试条件构造器

* 组合where后面条件子句

* QueryWrapper

* UpdateWrapper

*/

@SpringBootTest

public class WrapperTest {

@Autowired

private IUserService userService;

@Test

public void testWapperTest(){

//根据id查询用户信息

//select*from t_user where id=4

//创建条件构造器

QueryWrapper objectQueryWrapper = new QueryWrapper<>();

//组合条件 连缀操作

objectQueryWrapper.eq("u_id",4)

.likeRight("u_name","李")

.ge("age",20)

.isNotNull("email");

List list = userService.list(objectQueryWrapper);

System.out.println("list = " + list);

}

//测试 并且 或者 条件

@Test

public void testWrapper(){

//更新 年龄大于20 或者 邮箱不为空的 用户姓名 为 小章

// UPDATE t_user SET u_name=? WHERE is_delete=0 AND (age > ? OR email IS NULL)

//创建 条件构造器

UpdateWrapper updateWrapper = new UpdateWrapper<>();

updateWrapper.gt("age",25)

.or()

.isNull("email");

//更新后用户数据

User user = new User();

user.setName("李华");

boolean update = userService.update(user, updateWrapper);

System.out.println("update = " + update);

}

//测试删除

@Test

public void testWrappper2(){

QueryWrapper objectQueryWrapper = new QueryWrapper<>();

objectQueryWrapper.eq("u_id",2).or().isNotNull("age");

boolean remove = userService.remove(objectQueryWrapper);

System.out.println("remove = " + remove);

}

@Test

public void testWrapper3(){

LambdaQueryWrapper objectLambdaQueryWrapper = new LambdaQueryWrapper<>();

objectLambdaQueryWrapper.ge(User::getId,2)

.likeRight(User::getName,"李")

.ge(User::getAge,24)

.isNotNull(User::getEmail);

List list = userService.list(objectLambdaQueryWrapper);

list.forEach(System.out::println);

}

@Test

public void testWrapper7(){

//更新

LambdaUpdateWrapper objectLambdaUpdateWrapper = new LambdaUpdateWrapper<>();

objectLambdaUpdateWrapper.isNull(User::getEmail);

//更新后数据

objectLambdaUpdateWrapper.set(User::getAge,18);

boolean update = userService.update(null, objectLambdaUpdateWrapper);

System.out.println("update = " + update);

}

@Test

public void testWrapper8(){

Integer age=19;

//查询年龄不为空的用户信息,进行删除

LambdaUpdateWrapper lambdaUpdateWrapper = new LambdaUpdateWrapper<>();

lambdaUpdateWrapper.eq(User::getName,"王五")

.or()

.isNotNull(User::getEmail)

.isNotNull(User::getAge);

boolean remove = userService.remove(lambdaUpdateWrapper);

System.out.println("remove = " + remove);

}

}

推荐文章

评论可见,请评论后查看内容,谢谢!!!
 您阅读本篇文章共花了: