站长工具官网域名查询,重庆前十装修公司排名,三门峡网站设计,做网站需要报备什么用到了wrapper#xff0c;整理资料记录一下#xff0c;以备后续复习。
一、wapper介绍 #xff1a; Wrapper #xff1a; 条件构造抽象类#xff0c;最顶端父类 AbstractWrapper #xff1a; 用于查询条件封装#xff0c;生成 sql 的 where 条件 QueryWrapper #xf…用到了wrapper整理资料记录一下以备后续复习。
一、wapper介绍 Wrapper 条件构造抽象类最顶端父类 AbstractWrapper 用于查询条件封装生成 sql 的 where 条件 QueryWrapper Entity 对象封装操作类不是用lambda语法 UpdateWrapper Update 条件封装用于Entity对象更新操作 AbstractLambdaWrapper Lambda 语法使用 Wrapper统一处理解析 lambda 获取 column。 LambdaQueryWrapper 看名称也能明白就是用于Lambda语法使用的查询Wrapper LambdaUpdateWrapper Lambda 更新封装Wrapper 二、项目实例
1、根据主键或者简单的查询条件进行查询 /*** 通过单个ID主键进行查询*/Testpublic void selectById() {User user userMapper.selectById(1094592041087729666L);System.out.println(user);}/*** 通过多个ID主键查询*/Testpublic void selectByList() {ListLong longs Arrays.asList(1094592041087729666L, 1094590409767661570L);ListUser users userMapper.selectBatchIds(longs);users.forEach(System.out::println);}/*** 通过Map参数进行查询*/Testpublic void selectByMap() {MapString, Object params new HashMap();params.put(name, 张雨琪);ListUser users userMapper.selectByMap(params);users.forEach(System.out::println);}2、MyBatis-Plus还提供了Wrapper条件构造器具体使用看如下代码
/*** 名字包含雨并且年龄小于40* p* WHERE name LIKE %雨% AND age 40*/Testpublic void selectByWrapperOne() {QueryWrapperUser wrapper new QueryWrapper();wrapper.like(name, 雨).lt(age, 40);ListUser users userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 名字包含雨* 年龄大于20小于40* 邮箱不能为空* p* WHERE name LIKE %雨% AND age BETWEEN 20 AND 40 AND email IS NOT NULL*/Testpublic void selectByWrapperTwo() {QueryWrapperUser wrapper Wrappers.query();wrapper.like(name, 雨).between(age, 20, 40).isNotNull(email);ListUser users userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 名字为王性* 或者年龄大于等于25* 按照年龄降序排序年龄相同按照id升序排序* p* WHERE name LIKE 王% OR age 25 ORDER BY age DESC , id ASC*/Testpublic void selectByWrapperThree() {QueryWrapperUser wrapper Wrappers.query();wrapper.likeRight(name, 王).or().ge(age, 25).orderByDesc(age).orderByAsc(id);ListUser users userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 查询创建时间为2019年2月14* 并且上级领导姓王* p* WHERE date_format(create_time,%Y-%m-%d) 2019-02-14 AND manager_id IN (select id from user where name like 王%)*/Testpublic void selectByWrapperFour() {QueryWrapperUser wrapper Wrappers.query();wrapper.apply(date_format(create_time,%Y-%m-%d) {0}, 2019-02-14).inSql(manager_id, select id from user where name like 王%);ListUser users userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 查询王姓* 并且年龄小于40或者邮箱不为空* p* WHERE name LIKE 王% AND ( age 40 OR email IS NOT NULL )*/Testpublic void selectByWrapperFive() {QueryWrapperUser wrapper Wrappers.query();wrapper.likeRight(name, 王).and(qw - qw.lt(age, 40).or().isNotNull(email));ListUser users userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 查询王姓* 并且年龄大于20 、年龄小于40、邮箱不能为空* p* WHERE name LIKE ? OR ( age BETWEEN ? AND ? AND email IS NOT NULL )*/Testpublic void selectByWrapperSix() {QueryWrapperUser wrapper Wrappers.query();wrapper.likeRight(name, 王).or(qw - qw.between(age, 20, 40).isNotNull(email));ListUser users userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** (年龄小于40或者邮箱不为空) 并且名字姓王* WHERE ( age 40 OR email IS NOT NULL ) AND name LIKE 王%*/Testpublic void selectByWrapperSeven() {QueryWrapperUser wrapper Wrappers.query();wrapper.nested(qw - qw.lt(age, 40).or().isNotNull(email)).likeRight(name, 王);ListUser users userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 查询年龄为30、31、32* WHERE age IN (?,?,?)*/Testpublic void selectByWrapperEight() {QueryWrapperUser wrapper Wrappers.query();wrapper.in(age, Arrays.asList(30, 31, 32));ListUser users userMapper.selectList(wrapper);users.forEach(System.out::println);}/*** 查询一条数据* limit 1*/Testpublic void selectByWrapperNine() {QueryWrapperUser wrapper Wrappers.query();wrapper.in(age, Arrays.asList(30, 31, 32)).last(limit 1);ListUser users userMapper.selectList(wrapper);users.forEach(System.out::println);}三、具体使用操作
1、ge、gt、le、lt、isNull、isNotNull Test
public void testDelete() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.isNull(name).ge(age, 12).isNotNull(email);int result userMapper.delete(queryWrapper);System.out.println(delete return count result);
}SQLUPDATE user SET deleted1 WHERE deleted0 AND name IS NULL AND age ? AND email IS NOT NULL 2、eq、ne
Test
public void testSelectOne() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.eq(name, Tom);User user userMapper.selectOne(queryWrapper);System.out.println(user);
}3、between、notBetween
Test
public void testSelectCount() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.between(age, 20, 30);Integer count userMapper.selectCount(queryWrapper);System.out.println(count);
}SELECT COUNT(1) FROM user WHERE deleted0 AND age BETWEEN ? AND ? 4、allEq
Test
public void testSelectList() {QueryWrapperUser queryWrapper new QueryWrapper();MapString, Object map new HashMap();map.put(id, 2);map.put(name, Jack);map.put(age, 20);queryWrapper.allEq(map);ListUser users userMapper.selectList(queryWrapper);users.forEach(System.out::println);
}SELECT id,name,age,email,create_time,update_time,deleted,version FROM user WHERE deleted0 AND name ? AND id ? AND age ? 5、like、notLike、likeLeft、likeRight
Test
public void testSelectMaps() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.notLike(name, e).likeRight(email, t);ListMapString, Object maps userMapper.selectMaps(queryWrapper);//返回值是Map列表maps.forEach(System.out::println);
}SELECT id,name,age,email,create_time,update_time,deleted,version FROM user WHERE deleted0 AND name NOT LIKE ? AND email LIKE ? 6、in、notIn、inSql、notinSql、exists、notExists
Test
public void testSelectObjs() {QueryWrapperUser queryWrapper new QueryWrapper();//queryWrapper.in(id, 1, 2, 3);queryWrapper.inSql(id, select id from user where id 3);ListObject objects userMapper.selectObjs(queryWrapper);//返回值是Object列表objects.forEach(System.out::println);
}SELECT id,name,age,email,create_time,update_time,deleted,version FROM user WHERE deleted0 AND id IN (select id from user where id 3) 7、or、and
Test
public void testUpdate1() {//修改值User user new User();user.setAge(99);user.setName(Andy);//修改条件UpdateWrapperUser userUpdateWrapper new UpdateWrapper();userUpdateWrapper.like(name, h).or().between(age, 20, 30);int result userMapper.update(user, userUpdateWrapper);System.out.println(result);
}UPDATE user SET name?, age?, update_time? WHERE deleted0 AND name LIKE ? OR age BETWEEN ? AND ? 8、orderBy、orderByDesc、orderByAsc
Test
public void testSelectListOrderBy() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.orderByDesc(id);ListUser users userMapper.selectList(queryWrapper);users.forEach(System.out::println);
}SELECT id,name,age,email,create_time,update_time,deleted,version FROM user WHERE deleted0 ORDER BY id DESC 9、指定要查询的列
Test
public void testSelectListColumn() {QueryWrapperUser queryWrapper new QueryWrapper();queryWrapper.select(id, name, age);ListUser users userMapper.selectList(queryWrapper);users.forEach(System.out::println);
}SELECT id,name,age FROM user WHERE deleted0 10、set、setSql
Test
public void testUpdateSet() {//修改值User user new User();user.setAge(99);//修改条件UpdateWrapperUser userUpdateWrapper new UpdateWrapper();userUpdateWrapper.like(name, h).set(name, 老李头)//除了可以查询还可以使用set设置修改的字段.setSql( email 123qq.com);//可以有子查询int result userMapper.update(user, userUpdateWrapper);
}UPDATE user SET age?, update_time?, name?, email ‘123qq.com’ WHERE deleted0 AND name LIKE ?