iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Mybatisplus中QueryWrapper的使用方法有哪些
  • 778
分享到

Mybatisplus中QueryWrapper的使用方法有哪些

2023-07-05 20:07:34 778人浏览 泡泡鱼
摘要

这篇文章主要介绍“mybatisplus中QueryWrapper的使用方法有哪些”,在日常操作中,相信很多人在Mybatisplus中QueryWrapper的使用方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希

这篇文章主要介绍“mybatisplus中QueryWrapper的使用方法有哪些”,在日常操作中,相信很多人在Mybatisplus中QueryWrapper的使用方法有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Mybatisplus中QueryWrapper的使用方法有哪些”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、 MyBatis-Plus

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。

mp的简单使用
现有一张 User 表,其表结构如下:

Mybatisplus中QueryWrapper的使用方法有哪些

其对应的数据库 Schema 脚本如下:

DROP TABLE IF EXISTS user;CREATE TABLE user(    id BIGINT(20) NOT NULL COMMENT '主键ID',    name VARCHAR(30) NULL DEFAULT NULL COMMENT '姓名',    age INT(11) NULL DEFAULT NULL COMMENT '年龄',    email VARCHAR(50) NULL DEFAULT NULL COMMENT '邮箱',    PRIMARY KEY (id));

其对应的数据库 Data 脚本如下:

DELETE FROM user;INSERT INTO user (id, name, age, email) VALUES(1, 'Jone', 18, 'test1@baomidou.com'),(2, 'Jack', 20, 'test2@baomidou.com'),(3, 'Tom', 28, 'test3@baomidou.com'),(4, 'Sandy', 21, 'test4@baomidou.com'),(5, 'Billie', 24, 'test5@baomidou.com');

初始化工程
创建一个空的 Spring Boot 工程(工程将以 H2 作为默认数据库进行演示)

提示

可以使用 spring Initializer (opens new window)快速初始化一个 Spring Boot 工程

#添加依赖
引入 Spring Boot Starter 父工程:

<parent>    <groupId>org.springframework.boot</groupId>    <artifactId>spring-boot-starter-parent</artifactId>    <version>2.5+ 版本</version>    <relativePath/></parent>

引入 spring-boot-starter、spring-boot-starter-test、mybatis-plus-boot-starter、h3 依赖:

<dependencies>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter</artifactId>    </dependency>    <dependency>        <groupId>org.springframework.boot</groupId>        <artifactId>spring-boot-starter-test</artifactId>        <scope>test</scope>    </dependency>    <dependency>        <groupId>com.baomidou</groupId>        <artifactId>mybatis-plus-boot-starter</artifactId>        <version>最新版本</version>    </dependency>    <dependency>        <groupId>com.h3Database</groupId>        <artifactId>h3</artifactId>        <scope>runtime</scope>    </dependency></dependencies>

配置
在 application.yml 配置文件中添加 H2 数据库的相关配置:

# DataSource Configspring:  datasource:    driver-class-name: org.h3.Driver    schema: classpath:db/schema-h3.sql    username: root    passWord: test  sql:    init:      schema-locations: classpath:db/schema-h3.sql      data-locations: classpath:db/data-h3.sql

在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹:

@SpringBootApplication@MapperScan("com.baomidou.mybatisplus.samples.quickstart.mapper")public class Application {    public static void main(String[] args) {        SpringApplication.run(Application.class, args);    }}

#编码
编写实体类 User.java(此处使用了 Lombok (opens new window)简化代码)

@Datapublic class User {    private Long id;    private String name;    private Integer age;    private String email;}

编写 Mapper 包下的 UserMapper接口

public interface UserMapper extends BaseMapper<User> {<!--{cke_protected}{C}%3C!%2D%2D%20%2D%2D%3E-->}

开始使用
添加测试类,进行功能测试:

@SpringBootTestpublic class SampleTest {    @Autowired    private UserMapper userMapper;    @Test    public void testSelect() {        System.out.println(("----- selectAll method test ------"));        List<User> userList = userMapper.selectList(null);        Assert.assertEquals(5, userList.size());        userList.forEach(System.out::println);    }}

提示

UserMapper 中的 selectList() 方法的参数为 MP 内置的条件封装器 Wrapper,所以不填写就是无任何条件

控制台输出:

User(id=1, name=Jone, age=18, email=test1@baomidou.com)
User(id=2, name=Jack, age=20, email=test2@baomidou.com)
User(id=3, name=Tom, age=28, email=test3@baomidou.com)
User(id=4, name=Sandy, age=21, email=test4@baomidou.com)
User(id=5, name=Billie, age=24, email=test5@baomidou.com)

提示

完整的代码示例请移步:Spring Boot 快速启动示例 (opens new window)| Spring mvc 快速启动示例(opens new window)

小结
通过以上几个简单的步骤,我们就实现了 User 表的 CRUD 功能,甚至连 XML 文件都不用编写!

从以上步骤中,我们可以看到集成MyBatis-Plus非常的简单,只需要引入 starter 工程,并配置 mapper 扫描路径即可。

但 MyBatis-Plus 的强大远不止这些功能,JAVA开发爱好者在使用mybatis-plus的时候,经常使用的是QueryWrapper,QueryWrapper继承自 AbstractWrapper ,自身的内部属性 entity 也用于生成 where 条件及 LambdaQueryWrapper, 可以通过 new QueryWrapper().lambda() 方法获取,下面总结了几种不同的用法:

二、MP&ndash;>QueryWrapper 5种更新语句不同写法:

public void updateUser1(){    //方式一:    User user = new User();    user.setAge(29);    user.setEmail("111111111111.com");    QueryWrapper queryWrapper = new QueryWrapper();    queryWrapper.eq("name","Tom");    update(user,queryWrapper);}public void updateUser2(){    update(null,new UpdateWrapper<User>().set("age",29)            .set("email","22222222222222.com").eq("name","Tom"));}public void updateUser3(){    User user = new User();    user.setAge(29);    user.setEmail("3333333.com");    update(user,new LambdaUpdateWrapper<User>(    ).eq(User::getName,"Tom"));}public void updateUser4(){    update(null,new LambdaUpdateWrapper<User>().set(User::getAge,29)            .set(User::getEmail,"4444444.com").eq(User::getName,"Tom"));}public void updateUser5(){    update(null,Wrappers.<User>update().lambda()            .set(User::getAge,29)            .set(User::getEmail,"555555555.com")            .eq(User::getName,"Tom"));}public void updateUser6(){    User user = new User();    user.setAge(29);    user.setEmail("6666666.com");    update(user,Wrappers.<User>update().lambda()            .eq(User::getName,"Tom"));}

三、三种查询语句不同写法:

public  List<User> selectListUser(){    List<User> list = baseMapper.selectList(      Wrappers.<User>lambdaQuery()            .eq(User::getName, "Tom"));     return  list;}public IPage<Map<String, Object>> listPageUser(){    Page<Map<String, Object>> mapPage =       baseMapper.selectMapsPage(            new Page<>(1, 5), Wrappers.<User>query()                    .orderByAsc("id"));    return  mapPage;}public List<User> listUser(){    LambdaQueryWrapper<User> lambdaQueryWrapper = new QueryWrapper<User>()      .lambda();    List<User> users = baseMapper.selectList(lambdaQueryWrapper);    return  users;}

到此,关于“Mybatisplus中QueryWrapper的使用方法有哪些”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: Mybatisplus中QueryWrapper的使用方法有哪些

本文链接: https://www.lsjlt.com/news/354977.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作