- 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);
- 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);
- 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);
- 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);
- 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);
- 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语句的后面