MyBatis-Plus Day2 Wapper 核心功能 条件构造器 测试
生活随笔
收集整理的這篇文章主要介紹了
MyBatis-Plus Day2 Wapper 核心功能 条件构造器 测试
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
MyBatis-Plus Day2 核心功能 條件構造器
之前搭建的在上一篇博客中已經寫好了。
鏈接:https://blog.csdn.net/weixin_45821811/article/details/115678015
今天的任務是去康康這個條件構造器。
我主要是做了測試 這個只是方便大家更簡單的理解
但是具體的使用和深層次的理解 還是需要大家一步一步手動測試的。
下面是自己做的測試 大家可以康一康 個人覺得這種還是需要在項目中才能理解的更加深刻
項目里的需求種類更多。
// 條件構造器//TODO 條件查詢 allEq@Testpublic void allEq() {QueryWrapper wrapper = new QueryWrapper();Map<String, Object> map = new HashMap<>();map.put("name", "李小斌");wrapper.allEq(map);User user = userMapper.selectOne(wrapper);// 拼接完后的SQL select * from user where name=’李小斌‘System.out.println(user);}// TODO 等于=@Testpublic void eq1() {QueryWrapper wrapper = new QueryWrapper();wrapper.eq("name", "李小斌");User user = userMapper.selectOne(wrapper);// 拼接完后的SQL select * from user where name=’李小斌‘System.out.println(user);}//TODO 不等于符號 <> ne@Testpublic void ne() {QueryWrapper wrapper = new QueryWrapper();wrapper.ne("name", "李小斌");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where name<>’李小斌‘ 就是name不等于李小斌list.forEach(System.out::println);}//TODO 大于符號 > gt@Testpublic void gt() {QueryWrapper wrapper = new QueryWrapper();wrapper.gt("id", "1");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id>1list.forEach(System.out::println);}//TODO 大于等于符號 >= ge@Testpublic void ge() {QueryWrapper wrapper = new QueryWrapper();wrapper.ge("id", "2");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id>=2list.forEach(System.out::println);}//TODO 小于符號 < lt@Testpublic void lt() {QueryWrapper wrapper = new QueryWrapper();wrapper.lt("id", "2");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id<2list.forEach(System.out::println);}//TODO 小于等于符號 <= le@Testpublic void le() {QueryWrapper wrapper = new QueryWrapper();wrapper.le("id", "2");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id<=2list.forEach(System.out::println);}//TODO BETWEEN 值1 AND 值2 between BETWEEN 操作符在 WHERE 子句中使用,作用是選取介于兩個值之間的數據范圍。// between("age", 18, 30)--->age between 18 and 30@Testpublic void between() {QueryWrapper wrapper = new QueryWrapper();wrapper.between("id", 1, 5);List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id between 1 and 5list.forEach(System.out::println);}//TODO NOT BETWEEN 值1 AND 值2 notBetween NOT BETWEEN 操作符在 WHERE 子句中使用,作用是選取不介于兩個值之間的數據范圍。// notBetween("age", 18, 30)--->age not between 18 and 30@Testpublic void notBetween() {QueryWrapper wrapper = new QueryWrapper();wrapper.notBetween("id", 1, 5);List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id not between 1 and 5list.forEach(System.out::println);}//TODO like LIKE '%值%' like("name", "王")--->name like '%王%'@Testpublic void like() {QueryWrapper wrapper = new QueryWrapper();wrapper.like("name", "李");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where name like '%李%"'list.forEach(System.out::println);}//TODO notLike NOT Like '%值%' notLike("name", "王")--->name not like '%王%'@Testpublic void notLike() {QueryWrapper wrapper = new QueryWrapper();wrapper.notLike("name", "李");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where name not like '%李%'list.forEach(System.out::println);}//TODO likeRight LIKE '值%' likeRight("name", "王")--->name like '王%'@Testpublic void likeRight() {QueryWrapper wrapper = new QueryWrapper();wrapper.likeRight("name", "李");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where name not like '李%'list.forEach(System.out::println);}//TODO isNull 字段 IS NULL isNull("name")--->name is null@Testpublic void isNull() {QueryWrapper wrapper = new QueryWrapper();wrapper.isNull("age");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where age is null 就是找到age 為空的 數據list.forEach(System.out::println);}//TODO isNotNull 字段 IS NOT NULL isNotNull("name")--->name is not null@Testpublic void isNotNull() {QueryWrapper wrapper = new QueryWrapper();wrapper.isNotNull("age");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where age is not null 就是找到age不為空的數據list.forEach(System.out::println);}//TODO in 字段 IN (value.get(0), value.get(1), ...)// in("age",{1,2,3})--->age in (1,2,3)@Testpublic void in() {QueryWrapper wrapper = new QueryWrapper();wrapper.in("id", Arrays.asList("1", "2", "3"));List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id in (1,2,3)list.forEach(System.out::println);}//TODO in 字段 IN (v0, v1, ...)// in("age", 1, 2, 3)--->age in (1,2,3)@Testpublic void in2() {QueryWrapper wrapper = new QueryWrapper();wrapper.in("id", 1, 2, 3);List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id in (1,2,3)list.forEach(System.out::println);}//TODO notIn 字段 NOT IN (value.get(0), value.get(1), ...)// notIn("age",{1,2,3})--->age not in (1,2,3)@Testpublic void notIn() {QueryWrapper wrapper = new QueryWrapper();wrapper.notIn("id", Arrays.asList("1", "2", "3"));List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id not in (1,2,3)list.forEach(System.out::println);}//TODO notIn 字段 NOT IN (value.get(0), value.get(1), ...)// notIn("age", 1, 2, 3)--->age not in (1,2,3)@Testpublic void notIn2() {QueryWrapper wrapper = new QueryWrapper();wrapper.notIn("id", 1, 2, 3);List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id not in (1,2,3)list.forEach(System.out::println);}//TODO inSql 字段 IN ( sql語句 ) inSql("age", "1,2,3,4,5,6")--->age in (1,2,3,4,5,6)@Testpublic void inSql1() {QueryWrapper wrapper = new QueryWrapper();wrapper.inSql("age", "1,2,3,4,5,6");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where age in (1,2,3,4,5,6)list.forEach(System.out::println);}//TODO inSql 字段 IN ( sql語句 )// inSql("id", "select id from table where id < 3")--->id in (select id from table where id < 3)@Testpublic void inSql2() {QueryWrapper wrapper = new QueryWrapper();wrapper.inSql("id", "select id from user where id < 3");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id in (select id from user where id < 3)list.forEach(System.out::println);}//TODO notInSql 字段 NOT IN ( sql語句 )// notInSql("age", "1,2,3,4,5,6")--->age not in (1,2,3,4,5,6)@Testpublic void notInSql() {QueryWrapper wrapper = new QueryWrapper();wrapper.notInSql("age", "1,2,3,4,5,6");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where age not in (1,2,3,4,5,6)list.forEach(System.out::println);}//TODO notInSql 字段 NOT IN ( sql語句 )// notInSql("id", "select id from table where id < 3")--->id not in (select id from table where id < 3)@Testpublic void notInSql2() {QueryWrapper wrapper = new QueryWrapper();wrapper.notInSql("id", "select id from user where id < 3");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id in (select id from user where id < 3)list.forEach(System.out::println);}//TODO orderByAsc 排序:ORDER BY 字段, ... ASC// orderByAsc("id", "name")--->order by id ASC,name ASC@Testpublic void orderByAsc() {QueryWrapper wrapper = new QueryWrapper();wrapper.orderByAsc("id", "name");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user order by id ASC,name ASClist.forEach(System.out::println);}//TODO orderByDesc 排序:ORDER BY 字段, ... ASC// orderByDesc("id", "name")--->order by id DESC,name DESC@Testpublic void orderByDesc() {QueryWrapper wrapper = new QueryWrapper();wrapper.orderByDesc("id", "name");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user order by id DESC,name DESClist.forEach(System.out::println);}//TODO orderBy 排序:ORDER BY 字段, ...// orderBy(true, true, "id", "name")--->order by id ASC,name ASC@Testpublic void orderBy() {QueryWrapper wrapper = new QueryWrapper();wrapper.orderBy(true, true, "id", "name");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user order by id ASC,name ASClist.forEach(System.out::println);}//TODO nested 正常嵌套 不帶 AND 或者 OR// nested(i -> i.eq("name", "李白").ne("status", "活著"))--->(name = '李白' and status <> '活著')@Testpublic void nested() {QueryWrapper<User> wrapper = new QueryWrapper<User>();wrapper.nested(i -> i.eq("name", "李小斌").ne("id", "3"));List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where name='李小斌' and id <>3list.forEach(System.out::println);}//TODO apply 拼接 sql// apply("id = 1")--->id = 1// apply("date_format(dateColumn,'%Y-%m-%d') = '2008-08-08'")--->date_format(dateColumn,'%Y-%m-%d') = '2008-08-08'")@Testpublic void apply() {QueryWrapper<User> wrapper = new QueryWrapper<User>();wrapper.apply("id=1");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where id = 1list.forEach(System.out::println);}//TODO last 拼接 sql// 無視優化規則直接拼接到 sql 的最后 只能調用一次,多次調用以最后一次為準 有sql注入的風險,請謹慎使用// last("limit 1")@Testpublic void last() {QueryWrapper<User> wrapper = new QueryWrapper<User>();wrapper.last("limit 1,3");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user limit 1 ,3list.forEach(System.out::println);}//TODO exists 拼接 EXISTS ( sql語句 )// exists("select id from table where age = 1")--->exists (select id from table where age = 1)@Testpublic void exists() {QueryWrapper<User> wrapper = new QueryWrapper<User>();wrapper.exists("select id from user where age = 3");List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where exists (select id from table where age = 3) 存在就返回truelist.forEach(System.out::println);}@Testpublic void and() {QueryWrapper<User> wrapper = new QueryWrapper<User>();wrapper.eq("name", "lxb").and(i -> i.eq("age", "3").ne("id", "100"));List<User> list = userMapper.selectList(wrapper);// 拼接完后的SQL select * from user where name='lxb' and age=3 and id<>100list.forEach(System.out::println);}打工人干飯了干飯了。
總結
以上是生活随笔為你收集整理的MyBatis-Plus Day2 Wapper 核心功能 条件构造器 测试的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: MyBatis-Plus 快速开始及详
- 下一篇: MyBatis-Plus 乐观锁 防止超