首页 > 其他分享 >MyBatisPlus

MyBatisPlus

时间:2024-10-18 20:21:39浏览次数:7  
标签:QueryWrapper 实体类 MyBatisPlus wrapper 查询 使用 方法

一,MybatisPlus基础

1.1要使用mybatisPlus需要的两个步骤;

1.引入MybatisPlus的依赖

点击查看代码
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>

因为此依赖包含了mybatis的起步依赖,所以完全可以代替mybatis的起步依赖。

2.对mapper的定义
在我们自己定义的mapper接口中,让接口实现BaseMapper接口,BaseMapper中已经定义了基本的CRUD方法(单表),可以直接使用。
BaseMapper中的方法:
image
注意:继承的BaseMapper的时候需要指定泛型,这样才能知道方法针对的表,示例:
image

1.2常用注解:

  • @TableName(实体类中使用)
    是表名标注,标注实体类中对应的表。
  • @TableId(实体类中使用)
    是实体类的主键注解,标明实体类中的主键。
    本注解中有一个经常使用的属性,IdType
    image
  • @TableField(在实体类中使用)
    是普通字段上面的注解,一般情况是不需要使用这个注解,在特殊情况下使用:
    image

2.1较复杂的方法

以上都是一些简单的CRUD,还有更多相对复杂的方法,在使用这些复杂方法的时候,除了新增方法,其他方法都会使用到查新条件,也就是where条件,示例如下:
image
所有我们可以使用条件构造器作为Wrapper条件。
wrapper是条件构造的抽象类,有很多的实现类,Wrapper的实现类的继承关系如下:
image
image
其中QueryWrapper在父类AbstractWrapper的基础上增加了selet方法,允许查询指定的字段。
其中UpdateWrapper在父类AbstractWrapper的基础上增加了set方法,允许指定SQL中的set部分。

2.2复杂方法的实际使用

2.2.1QueryWrapper的使用:
这个类的使用不仅限于查询,还可以在删除和修改的时候使用。
查询:查询出名字中带o的,存款大于等于1000元的人。

点击查看代码
@Test
void testQueryWrapper() {
    // 1.构建查询条件 where name like "%o%" AND balance >= 1000
    QueryWrapper<User> wrapper = new QueryWrapper<User>()
            .select("id", "username", "info", "balance")
            .like("username", "o")
            .ge("balance", 1000);
    // 2.查询数据
    List<User> users = userMapper.selectList(wrapper);
    users.forEach(System.out::println);
}

更新:更新用户名为jack的用户的余额为2000。

点击查看代码
@Test
void testUpdateByQueryWrapper() {
    // 1.构建查询条件 where name = "Jack"
    QueryWrapper<User> wrapper = new QueryWrapper<User>().eq("username", "Jack");
    // 2.更新数据,user中非null字段都会作为set语句
    User user = new User();
    user.setBalance(2000);
    userMapper.update(user, wrapper);
}

标签:QueryWrapper,实体类,MyBatisPlus,wrapper,查询,使用,方法
From: https://www.cnblogs.com/guating/p/18469554

相关文章

  • SpringBoot-MybatisPlus项目中,在控制台查看sql执行日志的方法
    SpringBoot-MybatisPlus项目中,在控制台查看sql执行日志的方法springboot、maven、mybatisplus、sql、日志、控制台、console、log背景在baomidou.com学习mybatisPlus入门的过程中,接触到表名和关键词冲突,加注解加表名引号后问题解决。不过我还想,在控制台打印一下执行......
  • 【Java】【SpringBoot】SpringBoot整合MybatisPlus(快速入门)
    较早之前,写了SpringBoot整合Mybatis:https://www.cnblogs.com/luyj00436/p/16701894.html。这个数据库的链接有过时。Mybatisplus是mybatis的增强工具。对比Mybatis功能强大、易于使用。对于复杂业务,需要连接多张表单,Mybatisplus不够灵活,隐藏了代码,也不能更好地调试;对于简单业务......
  • 【Java】【Idea】MyBatisPlusX 的使用
    1.安装MybatisPlusX插件 2.连接数据库 3.右击,选择“MybatisX-Generator”。 4.生成设置。  ......
  • MyBatisPlus快速入门
    MyBatisPlus需要的基础:MyBatisSpringSpringMVC一. MyBatisPlus概述1.介绍 MyBatis-Plus(简称MP)是一个 MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生2.特性无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑损耗......
  • Invalid bean definition with name ‘myBatisPlusApplication‘ defined in class pa
    目录问题出现背景问题分析问题解决一、背景        黑马课程的SSM框架里面的MyBatisPlus部分的学习,学习的是selecPage方法的测试时候出现的,因为要配分页的拦截器,所有定义了一个config的类,同时配了@Configuration(@Component好像也可正常使用),然后去到测试时候就......
  • SpringBoot3.x+MyBatisPlus+druid多数据源配置
    1引言本章主要介绍SpringBoot3.x多数据源配置,以及在此基础上配置分页拦截,自动填充功等功能,源码链接在文章最后。下面列出几个重要文件进行介绍。2项目结构整体项目结构如下,主要介绍配置文件和配置类。3主要代码3.1pom.xml注意SpringBoot3.x对应依赖为mybatis-plu......
  • SpringBoot项目常用配置文件MybatisPlusConfig、RedisConfig、RedissonConfig、Swagge
    MybatisPlusConfig:@Configuration@MapperScan("com.yupi.usercenter.mapper")publicclassMybatisPlusConfig{@BeanpublicMybatisPlusInterceptormybatisPlusInterceptor(){MybatisPlusInterceptorinterceptor=newMybatisPlusInterc......
  • MybatisPlus 主键策略之type=IdType.ASSIGN_ID等详解
    雪花算法(雪花)是微博开源的分布式ID生成算法其核心思想就是:使用一个64位的长型的数字作为全局唯一ID,主要介绍了MybatisPlus 主键策略(type=IdType.ASSIGN_ID等详解),需要的朋友可以参考下: 我们可以通过@TableId注解的 类型属性来设置主键id的增长策略,一共有几个多个主键策略,......
  • springboot+mybatisplus分页查询
    需求:类似sqlserversql语句查询top100条数据,如何在springboot+mybatisplus中实现(使用的是sqlserver2012数据库)1.pom文件中引入mybatisplus依赖<!--mybatis-plus--><dependency><groupId>com.baomidou</groupId><ar......
  • MybatisPlus学习笔记
    MyBatisPlus从入门到精通1.概述MybatisPlus是一款Mybatis增强工具,用于简化开发,提高效率。它在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。官网:https://baomidou.com/2.快速入门2.0准备工作①准备数据CREATETABLE`user`(`id`bigint(20)NOTNULL......