【黑马程序员】SSM框架——MyBatisPlus

文章目录

  • 前言
  • 一、MyBatisPlus 简介
    • 1. 入门案例
      • 1.1 创建新模块
      • 1.2 选择需要的技术集
      • 1.3 添加 mp 起步依赖
      • 1.4 设置 Jdbc 参数
      • 1.5 实体类与表结构
      • 1.6 定义数据接口
      • 1.7 测试功能
    • 2. MyBatisPlus 概述
    • 3. MyBatisPlus 特性
  • 二、标准数据层开发
    • 1. 标准数据层 CRUD 功能
      • 1.1 Lombok
      • 1.2 常用注解
        • @Data
    • 2. 分页功能
      • 2.1 MP 分页查询功能
        • ① 设置分页拦截器
        • ② 执行分页查询
      • 2.2 开启 MyBatisPlus 日志
  • 三、DQL 控制
    • 1. 条件查询方式
      • 1.1 条件查询
      • 1.2 条件添加方式
        • 1.2.1 常规格式
          • ① 常规格式
          • ② 链式格式
        • 1.2.2 lambda 格式
          • ① lambda 格式
          • ② lambda 格式
      • 1.3 组合查询条件
        • 1.3.1 并且(and)
        • 1.3.2 或者(or)
      • 1.4 null 值处理
        • 1.4.1 if 语句控制条件追加
        • 1.4.2 条件参数控制
          • ① 常规格式
          • ② 链式格式
    • 2. 查询投影
    • 3. 查询条件设置
      • 3.1 eq 匹配
      • 3.2 范围匹配
      • 3.3 like 匹配
      • 3.4 分组查询聚合函数
    • 4. 字段映射与表名映射
      • 4.1 常见注解
        • @TableField
        • @TableName
  • 四、DML 控制
    • 1. id 自增策略控制(Insert)
      • 1.1 id 生成策略控制
        • 1.1.1 常见注解
          • @ TableId
      • 1.2 全局设置
        • 1.2.1 id 生成策略全局配置
        • 1.2.2 表名前缀全局配置
    • 2. 多数据操作(Delete、Select)
    • 3. 逻辑删除(Delete / Update)
      • 3.1 逻辑删除开发步骤
        • ① 添加逻辑删除标记字段
        • ② 实体类中添加对应字段
        • ③ 配置逻辑删除字面值
    • 4. 乐观锁(Update)
      • 4.1 乐观锁开发步骤
        • ① 添加锁标记字段
        • ② 实体类添加对应字段
        • ③ 配置乐观锁拦截器
        • ④ 使用乐观锁机制
  • 五、快速开发
    • ① 导入坐标
    • ② 核心代码
    • ③ 数据源指定
    • ④ 全局配置指定
    • ⑤ 包相关配置
    • ⑥ 策略配置
  • 总结


前言

跟着B站的黑马程序员学习SSM框架,语言为java,目前是第三个学习内容
课程传送门:SSM框架——MyBatisPlus


一、MyBatisPlus 简介

1. 入门案例

1.1 创建新模块

在这里插入图片描述

1.2 选择需要的技术集

在这里插入图片描述

1.3 添加 mp 起步依赖

在这里插入图片描述

1.4 设置 Jdbc 参数

在这里插入图片描述

1.5 实体类与表结构

在这里插入图片描述

1.6 定义数据接口

在这里插入图片描述

1.7 测试功能

在这里插入图片描述

2. MyBatisPlus 概述

  • MyBatisPlus(简称 MP)是基于 MyBatis 框架基础上开发的增强型工具,旨在简化开发、提高效率
  • 官网:点击前往

3. MyBatisPlus 特性

  • 无侵入:只做增强不做改变,不会对现有工程产生影响
  • 强大的 CRUD 操作:内置通用 Mapper,少量配置即可实现单表操作 CRUD 操作
  • 支持 Lambda:编写查询条件无需担心字段写错
  • 支持主键自动生成
  • 内置分页插件

二、标准数据层开发

1. 标准数据层 CRUD 功能

在这里插入图片描述

1.1 Lombok

在这里插入图片描述

1.2 常用注解

@Data

在这里插入图片描述

2. 分页功能

在这里插入图片描述

2.1 MP 分页查询功能

① 设置分页拦截器

在这里插入图片描述

② 执行分页查询

在这里插入图片描述

2.2 开启 MyBatisPlus 日志

在这里插入图片描述

三、DQL 控制

1. 条件查询方式

1.1 条件查询

在这里插入图片描述

1.2 条件添加方式

1.2.1 常规格式
① 常规格式

在这里插入图片描述

② 链式格式

在这里插入图片描述

1.2.2 lambda 格式
① lambda 格式

在这里插入图片描述

② lambda 格式

在这里插入图片描述

1.3 组合查询条件

1.3.1 并且(and)

在这里插入图片描述

1.3.2 或者(or)

在这里插入图片描述

1.4 null 值处理

1.4.1 if 语句控制条件追加

在这里插入图片描述

1.4.2 条件参数控制
① 常规格式

在这里插入图片描述

② 链式格式

在这里插入图片描述

2. 查询投影

在这里插入图片描述

3. 查询条件设置

传送门:点击前往

3.1 eq 匹配

在这里插入图片描述

3.2 范围匹配

在这里插入图片描述

3.3 like 匹配

在这里插入图片描述

3.4 分组查询聚合函数

在这里插入图片描述

4. 字段映射与表名映射

  • 问题一:表字段与编码属性设计不同步
    在这里插入图片描述
    注解的使用:
    在这里插入图片描述

  • 问题二:编码中添加了数据库中未定义的属性
    在这里插入图片描述注解的使用:
    在这里插入图片描述

  • 问题三:采用默认查询开放了更多的字段查看权限
    在这里插入图片描述注解的使用:
    在这里插入图片描述

  • 问题四:表名与编码开发设计不同步
    在这里插入图片描述注解的使用:
    在这里插入图片描述

4.1 常见注解

@TableField

在这里插入图片描述

@TableName

在这里插入图片描述

四、DML 控制

1. id 自增策略控制(Insert)

1.1 id 生成策略控制

  • 不同的表应用不同的 id 生成策略:
    ① 日志:自增(1,2,3,4,…)
    ② 购物订单:特殊规则(FQ23948AK3843)
    ③ 外卖单:关联地区日期等信息(10 04 20200314 34 91)
    ④ 关系表:可省略 id
    ⑤ …

在这里插入图片描述

1.1.1 常见注解
@ TableId

在这里插入图片描述

1.2 全局设置

1.2.1 id 生成策略全局配置

在这里插入图片描述

1.2.2 表名前缀全局配置

在这里插入图片描述

2. 多数据操作(Delete、Select)

在这里插入图片描述

3. 逻辑删除(Delete / Update)

在这里插入图片描述

3.1 逻辑删除开发步骤

① 添加逻辑删除标记字段

在这里插入图片描述

② 实体类中添加对应字段

在这里插入图片描述

③ 配置逻辑删除字面值

在这里插入图片描述

4. 乐观锁(Update)

4.1 乐观锁开发步骤

① 添加锁标记字段

在这里插入图片描述

② 实体类添加对应字段

在这里插入图片描述

③ 配置乐观锁拦截器

在这里插入图片描述

④ 使用乐观锁机制

在这里插入图片描述

五、快速开发

① 导入坐标

在这里插入图片描述

② 核心代码

在这里插入图片描述

③ 数据源指定

在这里插入图片描述

④ 全局配置指定

在这里插入图片描述

⑤ 包相关配置

在这里插入图片描述

⑥ 策略配置

在这里插入图片描述


总结

以上就是本章要讲的内容,本文仅仅简单复述了老师讲课的文本内容,内容有误麻烦联系。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/131619.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Hadoop环境搭建及Demo

参考博客 Windows 10安装Hadoop 3.3.0教程 (kontext.tech) Hadoop入门篇——伪分布模式安装 & WordCount词频统计 | Liu Baoshuai’s Blog Hadoop安装教程 Linux版_linux和hadoop的安装_lnlnldczxy的博客-CSDN博客 hadoop启动出错 The value of property bind.address …

linux 安装 elasticsearch 全教程

一、去 elasticsearch官网找到Linux版本的下载链接 地址https://www.elastic.co/cn/downloads/elasticsearch 二、在linux 中用wget下载 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.10.4-linux-x86_64.tar.gz三、下载成功后解压文件 tar -x…

2023年金融科技建模大赛(初赛)开箱点评-基于四川新网银行数据集

各位同学大家好,我是Toby老师。2023年金融科技建模大赛(初赛)从今年10月14日开始,11月11日结束。 比赛背景 发展数字经济是“十四五”时期的重大战略规划。2023年,中共中央、国务院印发了《数字中国建设整体布局规划》…

POJ-3630电话表(考察字典树)

2023每日刷题&#xff08;二十&#xff09; POJ-3630电话表 题目原地址 输入样例&#xff1a; 2 3 911 97625999 91125426 5 113 12340 123440 12345 98346输出结果&#xff1a; NO YES实现代码 #include<iostream> #include<string> #include<cstring>…

抖音极速版app拉新一手申请渠道 附快手极速版app拉新申请资料

抖音极速版app拉新一手申请渠道 附快手极速版app拉新申请资料 通过“聚量推客”申请&#xff0c;价格更高 抖音极速版app拉新是地推百搭项目&#xff0c;部分团队作为主打项目推广&#xff0c;流程简单只需要新设备即可&#xff0c;如果你能做次留或者7日留存价格还是很可观的…

Vue3:一页多题答案提示及循环radio和checkbox混合使用

一页多题&#xff0c;类型包括单选&#xff08;单选、判断&#xff09;和多选&#xff0c;radio和checkbox混合使用&#xff0c;答案检验数据匹配&#xff0c;正确答案格式化&#xff0c;答案提交数据格式化&#xff0c;数据提交。 效果&#xff1a; 数据获取&#xff1a; 数据…

Zabbix监控联想服务器的配置方法

简介 图片 随着科技的发展&#xff0c;对于数据的敏感和安全大部分取决于对硬件性能、故障预判的监测&#xff0c;由此可见实时监测保障硬件的安全很重要&#xff0c;从而衍生了很多对硬件的监测软件&#xff0c;Zabbix就一个不错的选择。开源 开源 开源&#xff01; zabbix是…

【网络协议】聊聊CND如何进行提升系统读性能

我们知道对于京东这种仓储来说&#xff0c;其实并不是在北京有一个仓储中心&#xff0c;而是针对全国主要的地方&#xff0c;北京、上海、广州、杭州&#xff0c;郑州等地方都有自己的仓储中心&#xff0c;当用户下单后&#xff0c;就会根据最近的仓储进行发货&#xff0c;不仅…

高防IP的原理

高防IP&#xff0c;把域名解析到高防IP上(web事务只要把域名指向高防IP 即可。非web事务&#xff0c;把事务IP换成高防IP即可)一起在高防IP上设置转发规矩;所有公网流量都会走高防IP&#xff0c;通过端口协议转发的方法将用户的拜访通过高防IP转发到源站IP&#xff0c;一起将歹…

基站/手机是怎么知道信道情况的?

在无线通信系统中&#xff0c;信道的情况对信号的发送起到至关重要的作用&#xff0c;基站和手机根据信道的情况选择合适的资源配置和发送方式进行通信&#xff0c;那么基站或者手机是怎么知道信道的情况呢&#xff1f; 我们先来看生活中的一个例子&#xff0c;从A地发货到B地…

动态路由协议OSPF项目部署(二)

1. 静态和动态路由的区别&#xff1b; 2. OSPF协议通信过程与部署&#xff1b; 3. OSPF协议在项目上的应用场景 - OSPF - 开放式最短路径优先 - 一个动态路由协议 - 路由器转发数据 - 路由器需要一张地图 - 路由表 - 路由表如何构建的&#xff1f; - 依靠手动 或…

访问者模式

详情可参考&#xff1a;https://zhuanlan.zhihu.com/p/380161731 意图&#xff1a;主要将数据结构与数据操作分离。 适用于&#xff1a;系统中有稳定的数据结构&#xff0c;且数据结构的功能经常发生变化。 双分派&#xff1a;我的理解是两次多态操作&#xff0c;动态获取对象…

卷积与反卷积

文章目录 1 卷积1.1 卷积后的输出维度 2 反卷积2.1 来源2.2 原理2.3 使用2.3.1 padding2.3.2 strideoutput_padding 2.3 意义 1 卷积 1.1 卷积后的输出维度 设输入维度为i x i&#xff0c;卷积核大小为k x k&#xff0c;padding为p&#xff0c;strides为s&#xff0c;则输出维…

APM建设踩了哪些坑?去哪儿旅行分布式链路追踪系统实践

一分钟精华速览 分布式链路追踪系统在企业的APM体系中扮演着重要的角色。本文分享了去哪儿旅行构建分布式链路追踪系统的实践经验。从APM整体架构设计入手&#xff0c;讲述了日志收集、Kafka传输和Flink任务处理等环节的性能优化实践和踩坑经验。 同时&#xff0c;作者结合丰…

删除链表的倒数第 N 个结点

LeetCode 19. 删除链表的倒数第 N 个结点 /*** Definition for singly-linked list.* struct ListNode {* int val;* ListNode *next;* ListNode() : val(0), next(nullptr) {}* ListNode(int x) : val(x), next(nullptr) {}* ListNode(int x, ListNode *n…

【ES专题】ElasticSearch集群架构剖析

目录 前言阅读对象阅读导航前置知识笔记正文一、ES集群架构1.1 为什么要使用ES集群架构1.2 ES集群核心概念1.2.1 节点1.2.1.1 Master Node主节点的功能1.2.1.2 Data Node数据节点的功能1.2.1.3 Master Node主节点选举流程 1.2.2 分片1.3 搭建三节点ES集群1.3.1 ES集群搭建步骤1…

idea中配置spring boot单项目多端口启动

参照文章 https://zhuanlan.zhihu.com/p/610767685 项目配置如下 下面为 idea 2023&#xff0c;不同版本的设置有区别&#xff0c;但是没那么大&#xff0c;idea 2023默认使用新布局&#xff0c;切换为经典布局即可。 在项目根目录的.idea/workspace.xml文件里添加如下配置 &l…

高等数学教材重难点题型总结(十二)无穷级数

最后一更&#xff01;原谅博主已经开始瞎写字了&#xff0c;最近压力太大&#xff0c;以后有时间用mathPix打出来&#xff0c;看起来更舒适一些~ 高数最后一章&#xff0c;重点在于审敛法和求解幂级数的收敛半径~ 高数基础笔记全部更新完毕&#xff0c;共12*336期&#xff0c…

SpringBoot项目多环境开发

1.yml文件&#xff08;旧&#xff09; 说明&#xff1a;旧的写法。 #应用环境 spring:profiles:active: dev --- #设置环境#生产环境 spring:profiles: pro server:port: 81--- #开发环境 spirng:profiles: dev server:port: 81--- #测试环境 spring:profiles: test server:p…