一、條件構造器關系介紹 官網位址:https://mp.baomidou.com/guide/wrapper.html

介紹 :
上圖綠色框為抽象類abstract
藍色框為正常class類,可new對象
黃色箭頭指向為父子類關系,箭頭指向為父類
wapper介紹 :
Wrapper : 條件構造抽象類,最頂端父類,抽象類中提供4個方法西面貼源碼展示
AbstractWrapper : 用于查詢條件封裝,生成 sql 的 where 條件
AbstractLambdaWrapper : Lambda 文法使用 Wrapper統一處了解析 lambda 擷取 column。
LambdaQueryWrapper :看名稱也能明白就是用于Lambda文法使用的查詢Wrapper
LambdaUpdateWrapper : Lambda 更新封裝Wrapper
QueryWrapper : Entity 對象封裝操作類,不是用lambda文法
UpdateWrapper : Update 條件封裝,用于Entity對象更新操作
二、項目執行個體
在這裡我以QueryWrapper和UpdateWrapper為例,進行測試講解。我會在上篇部落格原有的基礎上進行測試,如果不喜歡搭建項目的可直接下載下傳我上個項目,上個項目的部落格對應上個項目的講解
上圖表格為條件構造器使用中的各個方法格式和說明,如有不懂可參考官方文檔内容
@RunWith(SpringRunner.class)
@SpringBootTest
public class QueryWrapperTests {
@Autowired
private UserMapper mapper;
@Test
public void delete() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper
.isNull("name")
.ge("age", 12)
.isNotNull("email");
int delete = mapper.delete(queryWrapper);
System.out.println("delete return count = " + delete);
}
@Test
public void selectOne() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "lqf");
User user = mapper.selectOne(queryWrapper);
System.out.println(user);
}
@Test
public void selectCount() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("name", "lqf");
Integer count = mapper.selectCount(queryWrapper);
System.out.println(count);
}
@Test
public void selectList() {
List<User> list = mapper.selectList(null);
System.out.println(list);
}
@Test
public void selectMaps() {
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.isNotNull("name");
List<Map<String, Object>> maps = mapper.selectMaps(queryWrapper);
for (Map<String, Object> map : maps) {
System.out.println(map);
}
}
@Test
public void selectPage() {
Page<User> page = new Page<>(1, 5);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
IPage<User> userIPage = mapper.selectPage(page, queryWrapper);
System.out.println(userIPage);
}
@Test
public void selectMapsPage() {
Page<User> page = new Page<>(1, 5);
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
IPage<Map<String, Object>> mapIPage = mapper.selectMapsPage(page, queryWrapper);
System.out.println(mapIPage);
}
@Test
public void update() {
//修改值
User user = new User();
user.setStatus(true);
user.setName("zhangsan");
//修改條件s
UpdateWrapper<User> userUpdateWrapper = new UpdateWrapper<>();
userUpdateWrapper.eq("name", "lqf");
int update = mapper.update(user, userUpdateWrapper);
System.out.println(update);
}
}