MyBatis-Plus(Wrapper的使用)

  1. allEq
		//1.
        QueryWrapper<User> qw = new QueryWrapper<>(); //User为数据库中对应的实体类
        Map<String,Object> param = new HashMap<>();
        param.put("name","Jone");
        param.put("age",18);
        param.put("id",1);
        qw.allEq(param);//一个参数时
        //其SQL语句相当于
		// SELECT * FROM user WHERE (name = ? AND id = ? AND age = ?)
        userMapper.selectList(qw); //userMapper对应的为User的Mapper接口
		
		//2.
		QueryWrapper<User> qw = new QueryWrapper<>();
        Map<String,Object> param = new HashMap<>();
        param.put("name","Jone");
        param.put("age",null);
        param.put("id",1);
        qw.allEq(param,false);//两个参数时 或qw.allEq(param,true);  一个参数时默认为true
       //当为true时,null 相当于 is null 其Sql语句相当于
       //SELECT id,name,age,email FROM user WHERE (name = ? AND id = ? AND age IS NULL)
       //当为false时,null 会自动忽略 其的Sql语句相当于
       //SELECT id,name,age,email FROM user WHERE (name = ? AND id = ?)
        userMapper.selectList(qw);
  1. eq,ne,gt,ge,lt,le
   	    QueryWrapper<User> qw = new QueryWrapper<>();
        qw.eq("name","Jone"); //查找对应的某一列 等于操作
        //其SQL语句相当于
        //SELECT * FROM user WHERE (name = ?)
         qw.ne("name","Jone"); //查找对应的某一列 不等于操作
        //其SQL语句相当于
        //SELECT * FROM user WHERE (name <> ?)
         qw.gt("age",20); //大于某个值
         //其SQL语句相当于
         //SELECT * FROM user WHERE (age > ?)
          qw.ge("age",18); //大于等于某个值
          //其SQL语句相当于
          //SELECT * FROM user WHERE (age >= ?)
          qw.lt("age",20); //小于某个值
         //其SQL语句相当于
         //SELECT * FROM user WHERE (age < ?)
          qw.le("age",18);//小于等于某个值
             //其SQL语句相当于
          //SELECT * FROM user WHERE (age <= ?)
	      userMapper.selectList(qw);


  1. between,notbetween,like,notlike,likeLeft,likeRight
		 QueryWrapper<User> qw = new QueryWrapper<>();
        qw.between("age",18,28); //在 18 和 28 之间的值(包含这两个临界值)
        //其SQL语句相当于
        //SELECT * FROM user WHERE (age BETWEEN ? AND ?)
        qw.notBetween("age",20,24); //不在 20 和 24 之间的值(两个临界值属于20和24之间)
        //其SQL语句相当于
        //SELECT * FROM user WHERE (age NOT BETWEEN ? AND ?)
        qw.like("name","o"); //模糊查询,查找所有带字母 o  的 name(不区分大小写, o会转化为 %o%)
        //其SQL语句相当于
        //SELECT * FROM user WHERE (name LIKE ?)
        qw.notLike("name","o"); //查询所有名字中不带 o 的(不区分大小写, o会转化为 %o%) 
        //其SQL语句相当于
        //SELECT * FROM user WHERE (name NOT LIKE ?)
        qw.likeRight("name","J");//模糊查询开头为J的name(不区分大小写,J会转化为J%)
        //其SQL语句相当于
        //SELECT * FROM user WHERE (name LIKE ?)
        qw.likeLeft("name","e");//模糊查询结尾是e的name(不区分大小写,e会转化为%e)
        //其SQL语句相当于
        //SELECT * FROM user WHERE (name LIKE ?)
        userMapper.selectList(qw);
  1. isnull isnotnull,in,notin
		QueryWrapper<User> qw = new QueryWrapper<>();
        qw.isNotNull("name"); //查找所有name不为空的
         //其SQL语句相当于
         //SELECT * FROM user WHERE (name IS NOT NULL)
          qw.isNull("name"); //查找所有name为空的
         //其SQL语句相当于
         //SELECT * FROM user WHERE (name IS NULL)
         qw.in("name","Jone","Tom");//查找名字为Jone或者Tom的(可以传多个值,或者将多个值封装到list集合中)
         //其SQL语句相当于
         //SELECT * FROM user WHERE (name IN (?,?))
        qw.notIn("name","Jone","Tom"); //查找名字不为Jone或者Tom的(可以传多个值,或者将多个值封装到list集合中)
        //其SQL语句相当于
         //SELECT * FROM user WHERE (name NOT IN (?,?))
        userMapper.selectList(qw);
  1. insql,notinsql,groupBy,orderBy
      QueryWrapper<User> qw = new QueryWrapper<>();
        qw.inSql("age","select age from user where id = 1");//嵌套查询
        //其SQL语句相当于
        //SELECT * FROM user WHERE (age NOT IN (select name from user where id = 1))
          qw.notInSql("age","select name from user where id = 1"); //嵌套查询
        //其SQL语句相当于
         //SELECT * FROM user WHERE (age NOT IN (select name from user where id = 1))
         qw.groupBy("name");//根据名字进行分组
	        //其SQL语句相当于
	       //SELECT * FROM user GROUP BY name
         qw.orderByAsc("name","age"); //根据名字和年龄排序(可传多个值,升序)(orderByDesc为降序)
         //其SQL语句相当于
         //SELECT * FROM user ORDER BY name ASC,age ASC
           qw.orderBy(true,true,"age");//根据年龄排序(当第一个参数为真时排序,为假时不排序,
                                      //第二个参数为真时升序,为假时降序)
        userMapper.selectList(qw);
  1. or,last
//当一次使用多个方法时默认为SQL语句中,默认为and连接,可以将其换成or连接,如下
  qw.eq("name","Jone");
  qw.eq("name","Tom");
  //其Sql语句为
  //SELECT id,name,age,email FROM user WHERE (name = ? AND name = ?)
   qw.eq("name","Jone");
   qw.or();
   qw.eq("name","Tom");
	//其SQL语句为
	//SELECT id,name,age,email FROM user WHERE (name = ? OR name = ?)	
	//last
	qw.last("SQL语句");//将该语句拼接到SQL语句的后面
	
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值