Wrapper 是所有條件構(gòu)造器的父類,作用是生成條件語句,即where后面的sql子句
在調(diào)用查詢,更新,刪除操作時,需要根據(jù)條件進行判斷,可以使用條件構(gòu)造器進行組合條件,生成where后面條件子句
QueryWrapper,UpdateWrapper
LambdaQueryWrapper,LambdaUpdateWrapper
UpdateWrapper提供了set方法,可以設置更新后的數(shù)據(jù)
QueryWrapper,可以對查詢,更新,刪除操作進行條件組合
LambdaQueryWrapper、LambdaUpdateWrapper支持Lambda表達式,可以通過Lambda表達式獲取到對應的字段,省去字段名的編寫
有Lambda前綴的,表示支持Lambda表達式
application.yml文章來源:http://www.zghlxwxcb.cn/news/detail-609368.html
server:
port: 8080
#數(shù)據(jù)源配置
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:
#統(tǒng)一設置實體類對應的數(shù)據(jù)表的默認前綴
table-prefix: t_
#設置主鍵自增
id-type: auto
Wrapper測試類文章來源地址http://www.zghlxwxcb.cn/news/detail-609368.html
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;
/**
* 測試條件構(gòu)造器
* 組合where后面條件子句
* QueryWrapper
* UpdateWrapper
*/
@SpringBootTest
public class WrapperTest {
@Autowired
private IUserService userService;
@Test
public void testWapperTest(){
//根據(jù)id查詢用戶信息
//select*from t_user where id=4
//創(chuàng)建條件構(gòu)造器
QueryWrapper<User> objectQueryWrapper = new QueryWrapper<>();
//組合條件 連綴操作
objectQueryWrapper.eq("u_id",4)
.likeRight("u_name","李")
.ge("age",20)
.isNotNull("email");
List<User> 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)
//創(chuàng)建 條件構(gòu)造器
UpdateWrapper<User> updateWrapper = new UpdateWrapper<>();
updateWrapper.gt("age",25)
.or()
.isNull("email");
//更新后用戶數(shù)據(jù)
User user = new User();
user.setName("李華");
boolean update = userService.update(user, updateWrapper);
System.out.println("update = " + update);
}
//測試刪除
@Test
public void testWrappper2(){
QueryWrapper<User> 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<User> objectLambdaQueryWrapper = new LambdaQueryWrapper<>();
objectLambdaQueryWrapper.ge(User::getId,2)
.likeRight(User::getName,"李")
.ge(User::getAge,24)
.isNotNull(User::getEmail);
List<User> list = userService.list(objectLambdaQueryWrapper);
list.forEach(System.out::println);
}
@Test
public void testWrapper7(){
//更新
LambdaUpdateWrapper<User> objectLambdaUpdateWrapper = new LambdaUpdateWrapper<>();
objectLambdaUpdateWrapper.isNull(User::getEmail);
//更新后數(shù)據(jù)
objectLambdaUpdateWrapper.set(User::getAge,18);
boolean update = userService.update(null, objectLambdaUpdateWrapper);
System.out.println("update = " + update);
}
@Test
public void testWrapper8(){
Integer age=19;
//查詢年齡不為空的用戶信息,進行刪除
LambdaUpdateWrapper<User> lambdaUpdateWrapper = new LambdaUpdateWrapper<>();
lambdaUpdateWrapper.eq(User::getName,"王五")
.or()
.isNotNull(User::getEmail)
.isNotNull(User::getAge);
boolean remove = userService.remove(lambdaUpdateWrapper);
System.out.println("remove = " + remove);
}
}
到了這里,關(guān)于MyBatis-Plus使用條件構(gòu)造器實現(xiàn)不同條件的查詢,更新刪除操作的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!