mybatis-plus ==> 入门教程

news2024/12/25 2:18:11

文章目录

  • 为什么要学呢?
    • 注意事项
  • 简单入门案例
  • 配置日志
  • 雪花算法
    • 更改 ID 的方法
  • CRUD
    • 插入(不解释了,代码非常简单)
    • 更新
    • 查询(批量查询)
    • 按条件查询
    • 分页查询
    • 删除(批量、通过条件、逻辑删除)
      • 批量删除
      • 通过条件删除
      • 逻辑删除
    • wapper 条件查询器
      • 模糊查询
      • 自动填充
        • 数据库级别
        • 代码级别
      • 乐观锁处理
        • 乐观锁的使用方式
    • 性能分析插件
    • 代码生成器

为什么要学呢?

节省了我们的大量时间,所有的 CRUD 代码几乎都可以自动生成(偷懒的,就例如 Lombok 一样)

特性:无侵入、损耗小、逐渐自动生成、内置分页插件、内置全局拦截插件、支持多种数据库等……

注意事项

注意:尽量不要把 mybatismybatis-plus 一起导入,可能会有版本差异。

简单入门案例

pojo:

在这里插入图片描述

dao:

在这里插入图片描述

services:

在这里插入图片描述

Test:

在这里插入图片描述

很简单的两部,没有配置 XML 文件 , 就几乎有了 Mapper 中 80% 的方法。(具体有哪些方法,没有展示,大家自己点开源码,就可以看到哦~~ )

配置日志

我们要是想看到具体是怎么执行的?那就要配置日志了,也非常的简单,方法如下:

在这里插入图片描述
在这里插入图片描述

雪花算法

了解:在分布式系统中,唯一ID的生成和管理是一项重要而棘手的任务。雪花算法,由Twitter开源的一种分布式ID生成算法。雪花算法是一种全局ID生成算法,其核心思想是将64位的long型ID分为四个部分,分别为:时间戳、工作机器ID、数据中心ID和序列号。通过将数据映射到具有特定结构的分布式系统中,实现数据的存储和查询。该算法由一系列节点组成,每个节点负责存储数据的一部分。这些节点通过哈希函数将数据映射到特定的位置,形成类似于雪花结构的分布式系统。通过这种方式,雪花算法能够在分布式系统中保证ID的唯一性和有序性。

更改 ID 的方法

在这里插入图片描述
在这里插入图片描述

CRUD

插入(不解释了,代码非常简单)

在这里插入图片描述

更新

注意理解一下,根据 ID 更新。参数需要的可是 实体类 哦 ~~ 。 需要更新啥,实体类就设置啥呢!

在这里插入图片描述
在这里插入图片描述

查询(批量查询)

在这里插入图片描述

按条件查询

在这里插入图片描述

分页查询

在这里插入图片描述

@Configuration
@MapperScan("com.xiao.dao")
public class MPconfig {
    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(new OptimisticLockerInnerInterceptor());


        // 分页插件
        PaginationInnerInterceptor paginationInnerInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);// 设置数据库为mysql
        paginationInnerInterceptor.setMaxLimit(1000L); // 设置最大查询数量,防止一次查询太多数据,给数据库压力过大
        // 添加分页插件
        interceptor.addInnerInterceptor(paginationInnerInterceptor);


        return interceptor;
    }



}

在这里插入图片描述

删除(批量、通过条件、逻辑删除)

批量删除

在这里插入图片描述

通过条件删除

在这里插入图片描述

逻辑删除

在这里插入图片描述
在这里插入图片描述

wapper 条件查询器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

模糊查询

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

自动填充

数据库级别
代码级别

在这里插入图片描述
在这里插入图片描述

乐观锁处理

乐观锁:顾名思义 ⇒ 十分乐观,总是以为不会出现问题,无论干什么都不去上锁!如果出现了问题,就在更新值了然后测试。

悲观锁:顾名思义 ⇒ 十分悲观。无论干什么都感觉会出问题,都去上锁!

乐观锁失败案例如下:

在这里插入图片描述

在被另外一个线程插队的情况下,则可能会被覆盖。

在这里插入图片描述

乐观锁的使用方式

在这里插入图片描述
在这里插入图片描述

性能分析插件

用于分析每条sql的执行时间

在这里插入图片描述
在这里插入图片描述

代码生成器

可以官网了解一下,这玩意有些厉害了,

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

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

相关文章

汇川AM400脉冲速度轴(轴控功能块ST源代码)

1、汇川AM400脉冲轴位置控制功能块 汇川AM400脉冲轴控制(轴控功能块ST源代码)-CSDN博客文章浏览阅读292次。汇川AM400电子齿轮指令详细应用介绍(CODESYS ST代码)_汇川plc am400 案例-CSDN博客文章浏览阅读146次。本文介绍了在使用汇川AM400电子齿轮指令前需要理解的比例随动概…

【SQLite】基础操作

数据查询 SELECT 查询所有数据 SELECT *FROM tableName使用AND操作符 SELECT * FROM tableName WHERE id=? AND name=?使用OR操作符 SELECT * FROM tableName WHERE id=? OR name=?组合使用AND和OR SELECT * FROM tableName WHERE (id=? AND name=?) OR status=?多表查询…

Python基础知识---入门概念

有些人不属于自己,但是遇见了也弥足珍贵。 -- 青山刚昌 《名侦探柯南》 安装python解释器 下载官网: Welcome to Python.org 安装pycharm编辑器 下载官网:Download PyCharm: The Python IDE for data science and web development by Je…

基于大数据的二手电子产品需求分析及可视化系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏:…

ARM Process state -- SPSR

Holds the saved process state for the current mode. 保存当前模式的已保存进程状态。 N, bit [31] Set to the value of PSTATE.N on taking an exception to the current mode, and copied to PSTATE.N on executing an exception return operation in the current mod…

项目:微服务即时通讯系统客户端(基于C++QT)]四,中间界面搭建和逻辑准备

四,中间界面搭建 前言:当项目越来越复杂的时候,或许画草图是非常好的选择 一,初始化中间窗口initMidWindow void mainWidget::initMidWindow() {//使用网格布局进行管理QGridLayout* layout new QGridLayout();//距离上方 20px 的距离&…

QT开发:深入掌握 QtGui 和 QtWidgets 窗口管理:QMainWindow、QDialog 和 QWidget 的高级应用

目录 引言 1. QMainWindow:高级窗口类 基本结构 菜单栏、工具栏和状态栏 菜单栏 工具栏 状态栏 中心部件和可停靠窗口 中心部件 可停靠窗口 示例代码与详解 2. QDialog:对话框窗口类 模态和非模态对话框 模态对话框 非模态对话框 自定义…

「Java开发指南」如何用MyEclipse为iPhone搭建Spring应用程序?

本教程将引导您完成在iPhone上使用的软件组件生成,这就产生了一个完全实现的可运行iPhone应用程序,可以立即用于验证和测试生成的iPhone组件。在本教程中,您将学习如何: 从数据库表搭建到现有项目部署应用程序 MyEclipse v2024.…

点云配准ICP算法笔记

参考:【PCL】—— 点云配准ICP(Iterative Closest Point)算法_icp点云配准-CSDN博客 点云配准 计算出两个点云簇之间的变换矩阵,从而计算出位姿等信息,学习点云配准的目的是想要计算相邻两帧物体的点云之间的变换位姿,从而得到物…

企业合规新动力:天锐股份助力等保制度落地实施

等保是指对网络(含信息系统、数据)实施分等级保护、分等级监管,对网络中使用的网络安全产品实行按等级管理,对网络中发生的安全事件分等级响应、处置。 【地址:点击了解天锐股份数据安全产品】 等保的必要性 频发的网…

选择国企eHR人事管理系统的时候,应该注意什么?

近年来,中国正步入高速发展的黄金时期,国有企业(国企)在追求效率和管理水平提升方面迈出了重要步伐。为了进一步实现数字化、流程化和科学化管理,越来越多的国企选择引进eHR(电子人力资源管理)系…

Java-IO模型

所谓I/O就是计算机内存与外部设备之间拷贝数据的过程。由于CPU访问内存的速度远远高于外部设备,因此CPU是先把外部设备的数据读到内存里,然后再进行处理。对于一个网络I/O通信过程,比如网络数据读取,会涉及两个对象,一…

VMware复制Ubuntu虚拟机后网卡失效的问题

为了在个人电脑上搭建集群,我使用了多台VMware虚拟机来模拟集群主机。之前虚拟机的操作系统是Redhat时,我复制虚拟机后网卡功能没有问题,但这次换成Ubuntu操作系统,我复制了虚拟机后同时启动这两台虚拟机,其中一台虚拟…

软件测试谣言二三事,认真你就输了

软件测试在近几年关注度日益升高,这得益于行业快速发展,以及很多公司和国际接轨后,对质量要求的增高。 在网上相关的讨论中,有许多观点并不符合我在这个行业的感知,针对一些观点,在这里结合我自己多年的从事经验,给大家辟辟谣。 谣言一:软件测试入门容易,会点点点就…

vue结合element-ui实现列表拖拽变化位置,点击拖动图标拖动整个列表元素,使用tsx格式编写

先来看下需要实现的效果 当鼠标放在左侧图标上时,可以拖动整个列表元素,调整顺序 思路介绍 使用draggable可以设置元素可拖动,然后分别设置三个事件处理函数,监听onDragstart、onDragover、onDragend三个事件 注意&#xff1a…

基于STM32的智能温度监控系统

目录 引言项目背景环境准备 硬件准备软件安装与配置系统设计 系统架构关键技术代码示例 传感器数据采集与处理温度监控与报警显示功能应用场景结论 1. 引言 温度监控系统在许多应用场景中具有重要作用,例如工业、农业以及家居生活。通过使用STM32微控制器、温度传…

Excel:常用函数

一、DAYS(返回两个日期之间的天数) 以下演示是在windows操作系统环境,office软件进行操作的 1.1 单元格设置日期格式 1.2 设置Days函数 公式:DAYS(C2,B2) 全部天数 二、SUM(求和) 公式:SUM(…

第二届两岸新经济产业发展研讨会闭幕,爱迪斯通董事长发表演讲

9月29日,第二届两岸新经济产业发展研讨会在福州高新区圆满落幕。此次研讨会由清华大学两岸发展研究院主办,福州市招商行动领导小组办公室、福州高新区承办,汇聚了两岸的专家学者及企业家代表近200人,共同探讨新质生产力的发展与两…

宠物医院微信小程序源码

文章目录 前言研究背景研究内容一、主要技术?二、项目内容1.整体介绍(示范)2.系统分析3.数据表信息4.运行截图5.部分代码介绍 总结 前言 随着当代社会科技的迅速发展,计算机网络时代正式拉来帷幕,它颠覆性的影响着社会…

【回眸】Tessy 单元测试软件使用指南(四)常见报错及解决方案与批量初始化的经验

前言 分析时Tessy的报错 1.fatal error: Tricore/Compilers/Compilers.h: No such file or directory 2.error: #error "Compiler unsupported" 3.warning: invalid suffix on literal;C11 requires a space between literal and string macro 4.error: unknown…