Service 链式查询

注意:本教程使用的数据库脚本、数据模型和环境信息请参考 “MyBatis Plus环境准备” 章节,点击下载示例源码

在 IService 中提供了一个 query 方法,该方法返回 QueryChainWrapper 对象。我们可以使用该对象实现链式查询,避免每次都创建 QueryWrapper 对象。query 方法定义如下:

// 链式查询 普通
QueryChainWrapper<T> query();

QueryChainWrapper 对象提供的方法和 QueryWrapper 方法基本一样,其中下面几个用于获取记录。代码如下:

// 应用查询条件,返回一个结果列表
// 例如:userService.query().eq("sex", "男").gt("salary", 7000).lt("age", 30).list();
public List<T> list()
// 应用查询条件,返回一个结果
// 例如:userService.query().eq("user_id", 100).one();
public T one()
// 应用查询条件,返回数据记录数
// 例如:userService.query().eq("sex", "男").gt("salary", 7000).lt("age", 30).one();
public Integer count()

示例代码

(1)下面示例将采用链式查询,查找性别为“男”,薪水大于 7000,年龄小于 30 的用户列表。代码如下:

package com.hxstrive.mybatis_plus.simple_service.chain;

import com.hxstrive.mybatis_plus.model.UserBean;
import com.hxstrive.mybatis_plus.service.UserService;
import org.junit.jupiter.api.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import java.util.List;

@RunWith(SpringRunner.class)
@SpringBootTest
class Chain1Test {

    @Autowired
    private UserService userService;

    @Test
    void contextLoads() {
        List<UserBean> userBeanList = userService.query()
                .eq("sex", "男")
                .gt("salary", 7000)
                .lt("age", 30).list();
        for(UserBean userBean : userBeanList) {
            System.out.println(userBean);
        }
    }

}

说说我的看法
全部评论(

注意最后有一个list()转换嗷

回复:

谢谢支持,代码后面由 list(),如下:

List<UserBean> userBeanList = userService.query()
.eq("sex", "男")
.gt("salary", 7000)
.lt("age", 30).list();


关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号