栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

MybatisPlus条件构造器wrapper方法的使用

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MybatisPlus条件构造器wrapper方法的使用

目录

一、Wrapper介绍

二、QueryWrapper的方法

三、目录结构

(1)目录

1、实体类

2、Mapper接口层

3、AnimalServiceImpl服务实现层

4、IAnimalService服务类

5、application.yml配置

 (2)数据库

四、实例

(1)eq、ne

(2)gt、ge、lt、le

(3)between、notbetween

(4)like、notLike、likeLeft、likeRight

(5)isNull、isNotNull

(6)in、notIn

(7)inSql、notInSql

(8)or、and

(9)exists、notExists

 (10)orderByAsc、orderByDesc


一、Wrapper介绍

       在Mybatis-Plus(MP)中,简单的查询可以使用MP已经封装好的API来实现,但复杂的查询语句可以通过MP提供的Wrapper来进行封装。

Wrapper继承体系

 Wrapper:条件构造抽象类,最顶端父类.

  • AbstractWrapper:用于查询条件封装,生成sql的where条件
  • QueryWrapper:Entity对象封装操作类,不是lambda语法
  • UpdateWrapper:Update条件封装,用于Entity对象更新操作
  • AbstractLambdaWrapper:Lambda语法使用Wrapper统一处理解析lambda获取column
  • LambdaQueryWrapper:用于Lambda语法使用的查询Wrapper
  • LambdaUpdateWrapper:Lambda更新封装Wrapper

 二、QueryWrapper的方法

三、目录结构

(1)目录

1、实体类

             @TableName("animal")    --->  关联的表名

             @Data---->引入Lombok插件即可使用

             @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")--->日期格式转换.

     @DateTimeFormat注解加不加都可以,因为使用的是String类型.

package com.wrapper.entity;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;



@TableName("animal")
@EqualsAndHashCode(callSuper = false)
@Data
public class Animal {

    
    private String name;

    
    private int age;

    
    private String alias;

    
    private String description;

    
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    private String inputtime;

    
    @DateTimeFormat(pattern = "yyyy-MM-dd hh:mm:ss")
    private String updatetime;

}

2、Mapper接口层
package com.wrapper.mapper;

import com.baomidou.mybatisplus.core.mapper.baseMapper;
import com.wrapper.entity.Animal;
import org.apache.ibatis.annotations.Mapper;


@Mapper
public interface AnimalMapper extends baseMapper {
}

3、AnimalServiceImpl服务实现层
package com.wrapper.service.impl;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.wrapper.entity.Animal;
import com.wrapper.mapper.AnimalMapper;
import com.wrapper.service.IAnimalService;
import org.springframework.stereotype.Service;


@Service
public class AnimalServiceImpl extends ServiceImpl implements IAnimalService {
}

4、IAnimalService服务类
package com.wrapper.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.wrapper.entity.Animal;


public interface IAnimalService extends IService {
}

5、application.yml配置
spring:
  datasource:
    username: root
    password: 123456
    #?serverTimezone=UTC解决时区的报错
    url: jdbc:mysql://localhost:3306/wapper_test_20211201?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8
    driver-class-name: com.mysql.jdbc.Driver
    type: com.alibaba.druid.pool.DruidDataSource

6、pom.xml配置

这里引用了thymeleaf和freemarker模板引擎依赖.去掉也可以.项目中并没有用到.



    4.0.0
    com.wrapper
    wrapper
    0.0.1-SNAPSHOT
    wrapper
    Demo project for Spring Boot

    
        1.8
        UTF-8
        UTF-8
        2.3.7.RELEASE
    

    
        
            org.springframework.boot
            spring-boot-starter-freemarker
        
        
            org.springframework.boot
            spring-boot-starter-thymeleaf
        
        
            org.springframework.boot
            spring-boot-starter-web
        
        
            com.baomidou
            mybatis-plus-boot-starter
            3.4.2
        

        
            org.springframework.boot
            spring-boot-devtools
            runtime
            true
        
        
            org.projectlombok
            lombok
            true
        
        
            org.springframework.boot
            spring-boot-starter-test
            test
            
                
                    org.junit.vintage
                    junit-vintage-engine
                
            
        
        
            com.alibaba
            druid
            1.1.22
            compile
        
        
            mysql
            mysql-connector-java
        
        
            mysql
            mysql-connector-java
        
    

    
        
            
                org.springframework.boot
                spring-boot-dependencies
                ${spring-boot.version}
                pom
                import
            
        
    

    
        
            
                org.apache.maven.plugins
                maven-compiler-plugin
                3.8.1
                
                    1.8
                    1.8
                    UTF-8
                
            
            
                org.springframework.boot
                spring-boot-maven-plugin
                2.3.7.RELEASE
                
                    com.wrapper.WrapperApplication
                
                
                    
                        repackage
                        
                            repackage
                        
                    
                
            
        
    


 (2)数据库
CREATE TABLE `animal` (
  `id` bigint NOT NULL AUTO_INCREMENT COMMENT '自增主键',
  `name` varchar(20) NOT NULL COMMENT '动物名称',
  `age` int DEFAULT NULL COMMENT '年龄',
  `alias` varchar(40) NOT NULL COMMENT '动物别名',
  `description` varchar(300) DEFAULT '' COMMENT '动物描述',
  `inputtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '动物信息入机时间',
  `updatetime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '动物信息更新时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;

四、实例

(1)eq、ne

eq:等于

    @Test
    void contextEq() {
        QueryWrapper queryWrapper = new QueryWrapper<>();
        //eq:等于
        //查询name等于狮子的数据.
        QueryWrapper eq = queryWrapper.eq("name", "狮子");
        Animal one = animalService.getOne(eq);
        System.out.println(one);
    }
Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09)

ne:不等于

 @Test
    void contextNe() {
        QueryWrapper queryWrapper = new QueryWrapper<>();
        //ne:不等于
        //查询name不等于蓝猫的数据
        QueryWrapper ne = queryWrapper.ne("name", "蓝猫");
        //name不等于蓝猫的数据有多条,所以使用list
        List list = animalService.list(ne);
        System.out.println(list);
    }
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02), Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=孔雀, age=3, alias=白孔雀, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09), Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12), Animal(name=西伯利亚雪橇犬, age=6, alias=二哈, description=富足家庭中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:14), Animal(name=大熊猫, age=8, alias=国宝, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:19)]

(2)gt、ge、lt、le

gt:大于,ge:大于等

@Test
    void contextGt() {
        QueryWrapper queryWrapper = new QueryWrapper<>();
        //gt:大于  查询年龄age大于4的数据
        QueryWrapper gt = queryWrapper.gt("age", 5);
        List list1 = animalService.list(gt);
        System.out.println(list1);

        System.out.println("===============================");

        //ge:大于等于  查询年龄大于等于5的数据
        QueryWrapper ge = queryWrapper.ge("age", 6);
        List list2 = animalService.list(ge);
        System.out.println(list2);
    }
[Animal(name=西伯利亚雪橇犬, age=6, alias=二哈, description=富足家庭中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:14), Animal(name=蓝猫, age=7, alias=猫, description=家养, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:16), Animal(name=大熊猫, age=8, alias=国宝, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:19)]
===============================
[Animal(name=西伯利亚雪橇犬, age=6, alias=二哈, description=富足家庭中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:14), Animal(name=蓝猫, age=7, alias=猫, description=家养, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:16), Animal(name=大熊猫, age=8, alias=国宝, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:19)]

lt:小于,le:小于等于

@Test
    void contextLt() {
        //第一种写法  lt:小于  查询年龄小于6的数据
        QueryWrapper queryWrapper = new QueryWrapper<>();
        QueryWrapper lt = queryWrapper.lt("age", 6);
        List list3 = animalService.list(lt);
        System.out.println(list3);
        //第二种写法
        List list4 = animalService.list(new LambdaQueryWrapper().lt(Animal::getAge, 6));
        System.out.println(list4);

        System.out.println("=======================");

        //第一种写法  le:小于等于   查询年龄小于等于5的数据
        QueryWrapper queryWrapper1 = new QueryWrapper<>();
        QueryWrapper le = queryWrapper1.le("age",5);
        List list5 = animalService.list(le);
        System.out.println(list5);
        //第二种写法
        List list6 = animalService.list(new LambdaQueryWrapper().le(Animal::getAge,5));
        System.out.println(list6);
    }
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02), Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=孔雀, age=3, alias=白孔雀, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09), Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12)]
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02), Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=孔雀, age=3, alias=白孔雀, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09), Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12)]
=======================
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02), Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=孔雀, age=3, alias=白孔雀, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09), Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12)]
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02), Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=孔雀, age=3, alias=白孔雀, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09), Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12)]

(3)between、notbetween

between:在值1和值2之间,notbetween:不在值1和值2之间

    @Test
    void contextBetween(){
        //between:在值1和值2之间.   查询年龄为5到7之间的数据
        List list7 = animalService.list(new LambdaQueryWrapper().between(Animal::getAge,5,7));
        System.out.println(list7);
        System.out.println("================");
        //notbetween:不在值1和值2之间
        List list8 = animalService.list(new LambdaQueryWrapper().notBetween(Animal::getAge,2,8));
        System.out.println(list8);
    }
[Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12), Animal(name=西伯利亚雪橇犬, age=6, alias=二哈, description=富足家庭中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:14), Animal(name=蓝猫, age=7, alias=猫, description=家养, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:16)]
================
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02)]

(4)like、notLike、likeLeft、likeRight

like:’%值%’,notLike:’%值%’

    @Test
    void contextLike(){
        //like:%值%  sql中的模糊查询  查询名字中带有犬的数据
        List list9 = animalService.list(new LambdaQueryWrapper().like(Animal::getName,"犬"));
        System.out.println(list9);

        System.out.println("=============================");

        //notLike:%值%  查询名字不带有猫的数据
        List list10 = animalService.list(new LambdaQueryWrapper().notLike(Animal::getName,"猫"));
        System.out.println(list10);
    }
[Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12), Animal(name=西伯利亚雪橇犬, age=6, alias=二哈, description=富足家庭中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:14)]
=============================
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02), Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=孔雀, age=3, alias=白孔雀, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09), Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12), Animal(name=西伯利亚雪橇犬, age=6, alias=二哈, description=富足家庭中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:14)]

likeLeft:’%值’,likeRight:'值%'

    @Test
    void contextLeftRight(){
        //likeLeft:%值  左边数据模糊,右边为"虎".  查询name(动物名称)中最后一个为"虎"的数据
        List list11 = animalService.list(new LambdaQueryWrapper().likeLeft(Animal::getName,"虎"));
        System.out.println(list11);

        System.out.println("===========================");

        //likeRight:值%  左边为"大",右边数据模糊.  查询名字第一个为"大"的数据
        List list12 = animalService.list(new LambdaQueryWrapper().likeRight(Animal::getName,"大"));
        System.out.println(list12);
    }
[Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27)]
===========================
[Animal(name=大熊猫, age=8, alias=国宝, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:19)]

(5)isNull、isNotNull

isNull:字段IS NULL(空),isNotNull:字段IS NOT NULL(不为空)

    @Test
    void contextNull(){
        //isNull:为空  查询alias(动物别名)为空的数据
        List list13 = animalService.list(new LambdaQueryWrapper().isNull(Animal::getAlias));
        System.out.println(list13);

        System.out.println("=============================");

        //isNotNull:不为空  查询alias(动物别名)不为空的数据
        List list14 = animalService.list(new LambdaQueryWrapper().isNotNull(Animal::getAlias));
        System.out.println(list14);
    }
[]
=============================
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02), Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=孔雀, age=3, alias=白孔雀, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09), Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12), Animal(name=西伯利亚雪橇犬, age=6, alias=二哈, description=富足家庭中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:14), Animal(name=蓝猫, age=7, alias=猫, description=家养, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:16), Animal(name=大熊猫, age=8, alias=国宝, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:19)]

(6)in、notIn

in:指定查询的值,notIn:不介于指定的值;in:字段 IN (v0, v1, …),notIn:字段 NOT IN (value.get(0), value.get(1), …)

    @Test
    void contextIn(){
        //in:指定查询的值  查询age(年龄)为3,4的数据
        List list15 = animalService.list(new LambdaQueryWrapper().in(Animal::getAge,3,4));
        System.out.println(list15);

        System.out.println("===========================");

        //notNot:不介于指定的值  查询age(年龄)不为1,2,3,4,5,6的数据
        List list16 = animalService.list(new LambdaQueryWrapper().notIn(Animal::getAge,1,2,3,4,5,6));
        System.out.println(list16);
    }
[Animal(name=孔雀, age=3, alias=白孔雀, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09)]
===========================
[Animal(name=蓝猫, age=7, alias=猫, description=家养, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:16), Animal(name=大熊猫, age=8, alias=国宝, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:19)]

(7)inSql、notInSql

inSql:字段 IN ( sql语句 ),notInSql:字段 NOT IN ( sql语句 )

    @Test
    void contextInSql(){
        //inSql:字段In (sql语句)  通过name查询age < 2 的数据
        List list17 = animalService.list(new LambdaQueryWrapper().inSql(Animal::getName,"select name from animal where age < 2"));
        System.out.println(list17);

        System.out.println("===========================");

        //notInSql:字段notIn  (sql语句)  通过那么查询age > 7 的数据
        List list18 = animalService.list(new LambdaQueryWrapper().notInSql(Animal::getName,"select name from animal where age < 7"));
        System.out.println(list18);
    }
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02)]
===========================
[Animal(name=蓝猫, age=7, alias=猫, description=家养, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:16), Animal(name=大熊猫, age=8, alias=国宝, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:19)]

(8)or、and

or:拼接OR,AND嵌套

注意事项:

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

    @Test
    void contextOrAnd(){
        //or:或  查询name(动物名称)等于狮子或者age(年龄)小于等于2的数据
        List list19 = animalService.list(new LambdaQueryWrapper().eq(Animal::getName,"狮子").or().le(Animal::getAge,2));
        System.out.println(list19);

        System.out.println("=======================");

        //and:并且  查询anme(动物名称)最后一个为"犬"并且age(年龄)大于5的数据
        List list20 = animalService.list(new LambdaQueryWrapper().likeLeft(Animal::getName,"犬").gt(Animal::getAge,5));
        System.out.println(list20);
    }
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02), Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09)]
=======================
[Animal(name=西伯利亚雪橇犬, age=6, alias=二哈, description=富足家庭中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:14)]

不使用and默认就是and

(9)exists、notExists

exists:拼接EXISTS(sql语句),notExists:拼接NOT EXISTS(sql语句)

    @Test
    void contextExists(){
        //exists:拼接  查询age(年龄)大于6 的数据
        List list21 = animalService.list(new LambdaQueryWrapper().exists("select name,alias,description from animal where age > 6"));
        System.out.println(list21);
    }

查询结果显示  数据库版本有问题 说明不支持该版本的MySQL.导致数据结果不对. 

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
2021-12-01 18:00:53.425  INFO 20440 --- [           main] com.alibaba.druid.pool.DruidDataSource   : {dataSource-1} inited
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02), Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=孔雀, age=3, alias=白孔雀, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09), Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12), Animal(name=西伯利亚雪橇犬, age=6, alias=二哈, description=富足家庭中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:14), Animal(name=蓝猫, age=7, alias=猫, description=家养, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:16), Animal(name=大熊猫, age=8, alias=国宝, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:19)]

 (10)orderByAsc、orderByDesc

orderByAsc:排序:ORDER BY 字段, … ASC,orderByDesc:排序:ORDER BY 字段, … DESC

    @Test
    void contextOrderByAsc(){

        //orderByAsc:升序  通过age(年龄)升序排序
        List list22 = animalService.list(new LambdaQueryWrapper().orderByAsc(Animal::getAge));
        System.out.println(list22);

        System.out.println("=============================");

        //orderByDesc:降序  通过age(年龄)降序排序
        List list23 = animalService.list(new LambdaQueryWrapper().orderByDesc(Animal::getAge));
        System.out.println(list23);
    }
[Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02), Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=孔雀, age=3, alias=白孔雀, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09), Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12), Animal(name=西伯利亚雪橇犬, age=6, alias=二哈, description=富足家庭中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:14), Animal(name=蓝猫, age=7, alias=猫, description=家养, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:16), Animal(name=大熊猫, age=8, alias=国宝, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:19)]
=============================
[Animal(name=大熊猫, age=8, alias=国宝, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:19), Animal(name=蓝猫, age=7, alias=猫, description=家养, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:16), Animal(name=西伯利亚雪橇犬, age=6, alias=二哈, description=富足家庭中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:14), Animal(name=边境牧羊犬, age=5, alias=边牧, description=家中, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:12), Animal(name=狮子, age=4, alias=辛巴, description=影视, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:09), Animal(name=孔雀, age=3, alias=白孔雀, description=北京动物园, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=东北虎, age=2, alias=大脑虎, description=东北地区, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 11:48:27), Animal(name=西伯利亚猩猩, age=1, alias=黑猩猩, description=西伯利亚, inputtime=2021-10-27 15:30:50, updatetime=2021-12-01 15:25:02)]

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/631516.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号