网页制作与网站建设实战大全 pdf下载,网页布局方式,wordpress写文章更新失败,绵阳企业网站建设公司Mybatis-Plus条件构造器QueryWrapper
1、条件构造器关系介绍 介绍 #xff1a; 上图绿色框为抽象类 蓝色框为正常类#xff0c;可创建对象 黄色箭头指向为父子类关系#xff0c;箭头指向为父类
wapper介绍 #xff1a; Wrapper #xff1a; 条件构造抽象类#xff0…Mybatis-Plus条件构造器QueryWrapper
1、条件构造器关系介绍 介绍 上图绿色框为抽象类 蓝色框为正常类可创建对象 黄色箭头指向为父子类关系箭头指向为父类
wapper介绍 Wrapper 条件构造抽象类最顶端父类抽象类中提供4个方法 AbstractWrapper 用于查询条件封装生成 sql 的 where 条件 AbstractLambdaWrapper Lambda 语法使用 Wrapper 统一处理解析 lambda 获取 column LambdaQueryWrapper 用于Lambda语法使用的查询 Wrapper LambdaUpdateWrapper Lambda 更新封装 Wrapper QueryWrapper Entity 对象封装操作类不是用 lambda 语法 UpdateWrapper Update 条件封装用于 Entity 对象更新操作
解释 2、构造器条件
package com.lqf.crud;import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.lqf.crud.bean.crm.User;
import com.lqf.crud.dao.crm.UserMapper;
import com.sun.org.apache.xerces.internal.util.EntityResolverWrapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.web.jsf.el.WebApplicationContextFacesELResolver;import javax.naming.Name;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;RunWith(SpringRunner.class)
SpringBootTest
public class QueryWrapperTests {Autowiredprivate UserMapper mapper;/*** p* 根据根据entity条件删除记录,QueryWrapper实体对象封装操作类可以为 null* 下方获取到queryWrapper后删除的查询条件为name字段为null的and年龄大于等于12的and email字段不为null的* 同理写法条件添加的方式就不做过多介绍了。* /p*/Testpublic void delete() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.isNull(name).ge(age, 12).isNotNull(email);int delete mapper.delete(queryWrapper);System.out.println(delete return count delete);}/*** p* 根据entity条件查询一条记录,* 这里和上方删除构造条件一样只是seletOne返回的是一条实体记录当出现多条时会报错* /p*/Testpublic void selectOne() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.eq(name, lqf);User user mapper.selectOne(queryWrapper);System.out.println(user);}/*** p* 根据Wrapper条件查询总记录数* /p** param queryWrapper 实体对象*/Testpublic void selectCount() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.eq(name, lqf);Integer count mapper.selectCount(queryWrapper);System.out.println(count);}/*** p* 根据 entity 条件查询全部记录* /p** param queryWrapper实体对象封装操作类可以为null为null查询全部*/Testpublic void selectList() {ListUser list mapper.selectList(null);System.out.println(list);}/*** p* 根据 Wrapper 条件查询全部记录* /p** param queryWrapper 实体对象封装操作类可以为 null*/Testpublic void selectMaps() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.isNotNull(name);ListMapString, Object maps mapper.selectMaps(queryWrapper);for (MapString, Object map : maps) {System.out.println(map);}}/*** 打印结果* {namelqf, id1046282328366391406, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391407, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391408, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391409, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391410, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391411, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391412, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391413, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391414, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391415, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391416, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391417, age12, emaillqf163.com, statusfalse}* {namelqf, id1046282328366391418, age12, emaillqf163.com, statusfalse}* json类型的键值对模式*//*** p* 根据 entity 条件查询全部记录并翻页* /p** param page 分页查询条件可以为 RowBounds.DEFAULT* param queryWrapper 实体对象封装操作类可以为 null*/Testpublic void selectPage() {PageUser page new Page(1, 5);QueryWrapperUser queryWrapper new QueryWrapper();IPageUser userIPage mapper.selectPage(page, queryWrapper);System.out.println(userIPage);}/*** 打印结果* Preparing: SELECT COUNT(1) FROM user* Parameters:* Columns: COUNT(1)* Row: 100* Preparing: SELECT id,name,age,email,status FROM user LIMIT 0,5* Parameters:* Columns: id, name, age, email, status* Row: 1046282328366391319, lqf, 12, lqf163.com, 0* Row: 1046282328366391320, lqf, 12, lqf163.com, 0* Row: 1046282328366391321, lqf, 12, lqf163.com, 0* Row: 1046282328366391322, lqf, 12, lqf163.com, 0* Row: 1046282328366391323, lqf, 12, lqf163.com, 0* Total: 5*** 这里需要在项目中加入分页插件* Bean* public PaginationInterceptor paginationInterceptor() {* return new PaginationInterceptor();* }*//*** p* 根据 Wrapper 条件查询全部记录并翻页* /p** param page 分页查询条件* param queryWrapper 实体对象封装操作类*/Testpublic void selectMapsPage() {PageUser page new Page(1, 5);QueryWrapperUser queryWrapper new QueryWrapper();IPageMapString, Object mapIPage mapper.selectMapsPage(page, queryWrapper);System.out.println(mapIPage);}/*** 和上个分页同理只是返回类型不同*//*** p* 根据 whereEntity 条件更新记录* /p** param entity 实体对象 (set 条件值,不能为 null)* param updateWrapper 实体对象封装操作类可以为 null,里面的 entity 用于生成 where 语句*/Testpublic void update() {//修改值User user new User();user.setStatus(true);user.setName(zhangsan);//修改条件sUpdateWrapperUser userUpdateWrapper new UpdateWrapper();userUpdateWrapper.eq(name, lqf);int update mapper.update(user, userUpdateWrapper);System.out.println(update);}/*** 打印结果* Preparing: UPDATE user SET name?, status? WHERE name ?* Parameters: zhangsan(String), true(Boolean), lqf(String)* Updates: 100* Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession56a4f272]* 100* 2018-10-02 15:08:03.928 INFO 7972 --- [ Thread-2] o.s.w.c.s.GenericWebApplicationContext : Closing org.springframework.web.context.support.GenericWebApplicationContext37313c65: startup date [Tue Oct 02 15:08:00 CST 2018]; root of context hierarchy* 2018-10-02 15:08:03.937 INFO 7972 --- [ Thread-2] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated...* 2018-10-02 15:08:04.053 INFO 7972 --- [ Thread-2] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed.** Process finished with exit code 0*/}