MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除

这篇具有很好参考价值的文章主要介绍了MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.条件查询、多条件查询

MyBatisPlus将书写复杂的SQL查询条件进行了封装,使用编程的形式完成查询条件的组合。

@Test
void testGetByCondition() {
    // 方式一:按条件查询
    QueryWrapper<User> qw = new QueryWrapper<User>();
    qw.lt("age", 20);
    List<User> userList = userDao.selectList(qw);
    System.out.println(userList);
    // 方式二:lambda格式
    QueryWrapper<User> qw2 = new QueryWrapper<User>();
    qw2.lambda().lt(User::getAge, 10);
    List<User> userList2 = userDao.selectList(qw2);
    System.out.println(userList2);
    // 方式三:lambda格式
    LambdaQueryWrapper<User> qw3 = new LambdaQueryWrapper<User>();
    qw3.lt(User::getAge, 10);
    List<User> userList3 = userDao.selectList(qw3);
    System.out.println(userList3);

    // 多条件查询
    LambdaQueryWrapper<User> lqw = new LambdaQueryWrapper<User>();
    // 10到30岁之间
    // lqw.lt(User::getAge, 30).gt(User::getAge, 10);
    // 小于10岁或大于30岁
    lqw.lt(User::getAge, 10).or().gt(User::getAge, 30);
    List<User> userList4 = userDao.selectList(lqw);
}

2.条件查询null判定

封装User模型的查询条件,这里age是具有上下限的,User类里面的age作为下限,这里的age2作为上限。

domain.query.UserQuery.java

package com.example.domain.query;

import com.example.domain.User;
import lombok.Data;

@Data
public class UserQuery extends User {
    private int age2;
}

①if语句控制

MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除,SSM,java,条件查询,mybatisplus,ssm

②条件参数控制

MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除,SSM,java,条件查询,mybatisplus,ssm

3. 查询投影

查询结果包含模型类中的部分属性

MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除,SSM,java,条件查询,mybatisplus,ssm

查询结果包含模型类中未定义的属性

MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除,SSM,java,条件查询,mybatisplus,ssm

4.查询条件

 MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除,SSM,java,条件查询,mybatisplus,ssm

MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除,SSM,java,条件查询,mybatisplus,ssm 

5.@TableField注解和@TableName注解

问题一:表字段和编码属性设计不同步
问题二:编码中添加了数据库中未定义的属性
问题三:设定某个字段不参与查询,比如密码pwd字段
问题四:表名与编码开发设计不同步

前三个问题采用@TableField注解,问题四采用@TableName注解

MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除,SSM,java,条件查询,mybatisplus,ssm

6.id生成策略控制

不同的表,应用不同的id生成策略。

  • 日志:自增(1,2,3....)
  • 购物订单:特殊规则(FQ23948c232e)
  • 外卖单:关联地区、日期等信息

使用@TableId注解

MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除,SSM,java,条件查询,mybatisplus,ssm

MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除,SSM,java,条件查询,mybatisplus,ssm

7. 多记录操作

MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除,SSM,java,条件查询,mybatisplus,ssm

 

8.逻辑删除

删除操作的问题:业务数据从数据库中丢弃

逻辑删除:为数据设置是否可用状态字段,删除时设置字段为不可用状态,数据保留在数据库中。

具体使用@TableLogic注解

MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除,SSM,java,条件查询,mybatisplus,ssm文章来源地址https://www.toymoban.com/news/detail-704361.html

到了这里,关于MyBatisPlus入门篇2 - 条件查询、查询投影、查询条件、id生成策略、多记录操作、逻辑删除的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot中ElasticsearchRestTemplate的使用示例,(增删改查、高亮查询、id查询、分页查询、时间范围查询、多条件查询)

    最近在单位搞日志相关的东西,然后部分日志就存储到了elasticsearch索引库,慢慢发觉索引库用着是真香,写这篇文章的目的就是记录一下关于ElasticsearchRestTemplate Api 的使用 下载及整合ElasticSearch SpringBoot2.3.x整合ElasticSearch

    2024年02月11日
    浏览(47)
  • 使用mybatisplus查询sql时,报Error attempting to get column ‘ID‘ from result set错误

    问题描述: 在使用如下代码进行查询时,报Error attempting to get column ‘ID’ from result set错误: 首先排除数据库字段大小写问题。 然后考虑ID字段在本轮逻辑中不是很重要,对代码做了如下更改,指定了查询字段: 结果查询正常,然后能得出结果集到实体类的映射过程出现问题

    2024年02月09日
    浏览(50)
  • 分布式主键ID生成策略

    小程序 搜索“ 源码轻舟 ”后续将推出算法和面试模块 坚持学习,好文每日送达!   业务系统对分布式ID的要求 唯一性:在分布式系统中,每个节点都需要生成唯一的标识符来确保数据的唯一性。传统的单点生成ID方式无法满足分布式环境下的需求,而分布式ID能够在整个

    2024年02月12日
    浏览(42)
  • 48 分布式id的生成策略

    1.UUID UUID由以下几部分的组合: UUID 是由一组32位数的16进制数字所构成,以连字号分隔的五组来显示,形式为 8-4-4-4-12,总共有 36个字符(即三十二个英数字母和四个连字号)。例如: 如果需求是只保证唯一性,那么UUID也是可以使用的,但是按照上面的分布式id的要求, UU

    2024年01月17日
    浏览(40)
  • Mybatis-plus id生成策略

    目录 1.1、为什么选择不同的id生成策略 1.2、策略种类 1.2.1、AUTO(自动增长策略) 1.2.3、ASSIGN_ID(雪花算法) 1.2.4、ASSIGN_UUID(不含中划线的UUID) 1.2.5、NONE(无状态) 1.3、注意 1、Mybatis-plus提供了多种主键生成策略, 可以在Pojo类中主键上加注解进行配置,例如数据库主键自

    2023年04月25日
    浏览(40)
  • Mybatis-Plus id生成策略控制

    目录 id生成策略控制 不同的表应用不同的id生成策略 名称 @TableId AUTO策略 除了AUTO这个策略以外,还有如下几种生成策略: 分布式ID是什么? INPUT策略 ASSIGN_ID策略 ASSIGN_UUID策略 雪花算法 ID生成策略对比 不同的表应用不同的id生成策略 日志:自增(1,2,3,4,……) 购物订单:特殊

    2024年02月22日
    浏览(48)
  • JAVA操作Elasticsearch指定主键_id生成策略

    Elasticsearch一共有两种主键生成策略,一个是手动指定和一个是自动生成! 效果如图 无须指定ID ,es会自动生成id规则 示例 真实请求 执行结果 示例(请求中不带/id) 真实请求 执行结果

    2023年04月08日
    浏览(37)
  • MyBatis-Plus主键策略(雪花算法16位长度的整型id,解决默认雪花算法生成19位长度id导致JS精度丢失问题)

    js表达的最大整数2的53次方减1,精度丢失后面几位全是0! 如果内置支持不满足你的需求,可实现 IKeyGenerator 接口来进行扩展. 举个栗子 #方式一:使用配置类 #方式二:通过 MybatisPlusPropertiesCustomizer 自定义 #方式一: XML 配置 #方式二:注解配置 官方示例 官方id generator示例 htt

    2023年04月08日
    浏览(43)
  • 工作的记录 left join on and 和 inner join on and的多条件查询区别

    eElasticsearch使用——结合MybatisPlus使用ES es和MySQL数据一致性 结合RabbitMQ实现解耦-CSDN博客 关于相对定位与绝对定位的区别_相对定位和绝对定位的区别-CSDN博客 display:flex(弹性盒子布局)详解_display: flex-CSDN博客 justify-content - CSS:层叠样式表 | MDN (mozilla.org) align-items - CSS:层叠样式

    2024年02月10日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包