条件构造器

    技术2022-07-10  135

    一.allEq方法

    1.基本应用【第一种模式】

    (1)语法

    //1.设置条件集合,必须是map集合 Map<String,Object> params = new HashMap<>(); params.put("name","张三"); params.put("age",21); params.put("password",null); //2.1 创建条件构造器对象 QueryWrapper<User> wrapper = new QueryWrapper<>(); //2.2.1 allEq方法是参数必须都相等 wrapper.allEq(params);

    (2)范例

    2.判断键值对是否为null

    (1)语法

    /** * 条件构造器测试 */ @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = cn.SpringBootApplicationDemo01.class) public class UserMapperTest6 { @Autowired private UserMapper userMapper; @Test public void test1(){ //1.设置条件集合,必须是map集合 Map<String,Object> params = new HashMap<>(); params.put("name","张三"); params.put("age",21); params.put("password",null); //2.1 创建条件构造器对象 QueryWrapper<User> wrapper = new QueryWrapper<>(); //2.2.1 allEq方法是参数必须都相等 // wrapper.allEq(params); //2.2.2 allEq方法是参数必须都相等,参数二是判断字段值是否为空 wrapper.allEq(params,false); //2.2.3 参数一为一个过滤器,设置是否符合要求参与条件判断 //参数二是判断条件集合的构造器对象 //如果判断k不是age或者id,则不参与判断条件。如果是,则参与判断条件 // wrapper.allEq((k,v)->(k.equals("age") || k.equals("id")),params); //3.执行sql语句 List<User> users = userMapper.selectList(wrapper); for (User user:users){ System.out.println(user); } } }

    (2)范例

    3.将判断条件设置过滤

    (1)语法

    /** * 条件构造器测试 */ @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = cn.SpringBootApplicationDemo01.class) public class UserMapperTest6 { @Autowired private UserMapper userMapper; @Test public void test1(){ //1.设置条件集合,必须是map集合 Map<String,Object> params = new HashMap<>(); params.put("name","张三"); params.put("age",21); params.put("password",null); //2.1 创建条件构造器对象 QueryWrapper<User> wrapper = new QueryWrapper<>(); //2.2.1 allEq方法是参数必须都相等 // wrapper.allEq(params); //2.2.2 allEq方法是参数必须都相等,参数二是判断字段值是否为空 // wrapper.allEq(params,false); //2.2.3 参数一为一个过滤器,设置是否符合要求参与条件判断 //参数二是判断条件集合的构造器对象 //如果判断k不是age或者id,则不参与判断条件。如果是,则参与判断条件 wrapper.allEq((k,v)->(k.equals("age") || k.equals("id")),params); //3.执行sql语句 List<User> users = userMapper.selectList(wrapper); for (User user:users){ System.out.println(user); } } }

    (2)范例

    二.基本条件查询的方法

    1.方法

    eq

    等于 =

    ne

    不等于 <>

    gt

    大于 >

    ge

    大于等于 >=

    lt

    小于 <

    le

    小于等于 <=

    between

    BETWEEN 值1 AND 值2

    notBetween

    NOT BETWEEN 值1 AND 值2

    in

    字段 IN (value.get(0), value.get(1), …)

    notIn

    字段 NOT IN (v0, v1, …)

    2.范例

    三.模糊查询

    1.方法

    like

    LIKE ‘%值%’

    例: like(“name”, “王”) —> name like ‘%王%’

    notLike

    NOT LIKE ‘%值%’

    例: notLike(“name”, “王”) —> name not like ‘%王%’

    likeLeft

    LIKE ‘%值’

    例: likeLeft(“name”, “王”) —> name like ‘%王’

    likeRight

    LIKE ‘值%’

    例: likeRight(“name”, “王”) —> name like ‘王%’

    2.范例

    四.排序查询

    1.方法

    orderBy

    排序:ORDER BY 字段, …

    例: orderBy(true, true, “id”, “name”) —> order by id ASC,name ASC

    orderByAsc

    排序:ORDER BY 字段, … ASC

    例: orderByAsc(“id”, “name”) —> order by id ASC,name ASC

    orderByDesc

    排序:ORDER BY 字段, … DESC

    例: orderByDesc(“id”, “name”) —> order by id DESC,name DESC

    2.范例

    五.逻辑查询【or或and】

    1.方法

    or

    拼接 OR

    主动调用 or 表示紧接着下一个方法不是用 and 连接!(不调用 or 则默认为使用 and 连接)

    AND

    嵌套

    例: and(i -> i.eq(“name”, “李白”).ne(“status”, “活着”)) —> and (name = ‘李白’ and status

    <> ‘活着’)

    2.范例

    六.指定字段查询【select方法】

    1.方法

    select()

    默认查询所有的字段,如果有需要也可以通过select方法进行指定字段。

    2.范例

    七.源码

    mybatisplus.rar

    Processed: 0.015, SQL: 9