天天看點

MyBatis-Plus_Condition作用

文章目錄

  • 在測試類中新增一個私有方法
/**
     * 當點選查詢按鈕時,查詢搜尋框中預設為null,也支援傳入條件
     *當傳入的條件不為null或者不為空""時,會拼接在where 的後邊當做條件
     * @param name
     * @param email
     */
    private void condition(String name, String email) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        if (StringUtils.isNotEmpty(name)) {
            queryWrapper.like("name", name);
        }
        if (StringUtils.isNotEmpty(email)) {
            queryWrapper.like("email", email);
        }
        List<User> userList = userMapper.selectList(queryWrapper);
        userList.forEach(System.out::println);

    }      
  • 寫一個調用上面測試方法
/**
     * 測試Condition
     */
    @Test
    public void testCondition() {

        String name = "王";
        String email = "";
        condition(name, email);
    }      
  • 将私有方法用用like的Condition展現(建議使用)
/**
     * 用like的Condition
     * <p>
     * 當點選查詢按鈕時,查詢搜尋框中預設為null,也支援傳入條件
     * 當傳入的條件不為null或者不為空""時,會拼接在where 的後邊當做條件
     *
     * @param name
     * @param email
     */
    private void condition(String name, String email) {
        QueryWrapper<User> queryWrapper = new QueryWrapper<>();

        queryWrapper.like(StringUtils.isNotEmpty(name), "name", name)
                .like(StringUtils.isNotEmpty(email), "email", email);
        List<User> userList = userMapper.selectList(queryWrapper);
        userList.forEach(System.out::println);
    }
    /*
       sql形式:SELECT id,name,age,email,manager_id,create_time FROM user WHERE name LIKE ?
     */