【学习笔记】【SpringCloud】MybatisPlus 基础使用

SpringCloud集成mybatisPlus:注入mapper失败 SpringCloud集成mybatisPlus踩坑指南:注入mapper失败 阅读详情

目录

一、使用 MybatisPlus 基本步骤

1. 引入 MybatisPlus 依赖

2. 定义Mapper接口并继承BaseMapper

二、MybatisPlus 常用配置

三、自定义SQL

四、IService 接口

1. 批量新增的效率问题

2. 配置方式

五、插件功能

1. 分页插件


一、使用 MybatisPlus 基本步骤

1. 引入 MybatisPlus 依赖

<!--MybatisPlus-->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>3.5.3.1</version>
</dependency>

2. 定义Mapper接口并继承BaseMapper

public interface UserMapper extends BaseMapper<User> {
}

二、MybatisPlus 常用配置

MyBatisPlus的配置项继承了MyBatis原生配置和一些自己特有的配置。例如:

mybatis-plus:
  type-aliases-package: com.itheima.mp.domain.po # 别名扫描包
  mapper-locations: "classpath*:/mapper/**/*.xml" # Mapper.xml文件地址,默认值
  configuration:
    map-underscore-to-camel-case: true # 是否开启下划线和驼峰的映射
    cache-enabled: false # 是否开启二级缓存,默认为false
  global-config:
    db-config:
      id-type: assign_id # id为雪花算法生成,默认值
      update-strategy: not_null # 更新策略:只更新非空字段

三、自定义SQL

我们可以利用MyBatisPlus的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分。

四、IService 接口

1. 批量新增的效率问题

在使用 MybatisPlus 批处理方法进行新增、更新、删除操作时。Mysql 驱动可能默认不会优化这些批量语句。也就是说,即使调用了批处理方法,驱动可能还是会将每个SQL单独发送到数据库执行,这样效率不高。比如,插入100条数据,可能需要发送100次插入语句,网络开销大。

可以考虑开启 rewriteBatchedStatements 参数,开启此参数后,JDBC 驱动会将多个独立的 SQL 语句合并为单个高效语句。例如,批量插入 INSERT INTO table (col) VALUES (?) 会被重写为 INSERT INTO table (col) VALUES (?), (?), ...,显著减少网络传输和数据库解析开销。

2. 配置方式

在 JDBC 连接 URL 中添加参数:

jdbc:mysql://localhost:3306/db?rewriteBatchedStatements=true

在mysql 的官方文档中,rewriteBatchedStatements 的默认值是 false

五、插件功能

1. 分页插件

如果使用 MybatisPlus 自带的分页插件,就不用使用其他插件了,比如PageHelper

首先,要在配置类中注册MyBatisPlus的核心插件,同时添加分页插件:

@Configuration
public class MybatisConfig {

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        // 1.初始化核心插件
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        // 2.添加分页插件
        PaginationInnerInterceptor pageInterceptor = new PaginationInnerInterceptor(DbType.MYSQL);
        pageInterceptor.setMaxLimit(1000L); // 设置分页上限
        interceptor.addInnerInterceptor(pageInterceptor);
        return interceptor;
    }
}

Springboot+SpringCloud具体使用 突然有一天,服务C中出了bug跑不动了,但是服务A仍然在被访问,但是每当调用服务C的时候就停在那了,然后程序依然在跑,JVM内存就一直不会回收分给这段程序的空间,随着访问量的增加,JVM的内存会一直被占着,这就会极大影响JVM内存容量,会导致JVM内存不足。此时服务降级就会让服务B调用的过程中不再去调用服务C,这样调用完服务B后,就直接返回响应结果,尽管响应的结果是不完整的,但是可以让程序可以成功的跑完,不会占用JVM内存。什么是负载均衡:负载均衡可以提高我们服务的可用性,让我们的服务更稳定。 阅读详情

相关推荐

搭建SpringBoot + SpringCloud + MyBatisPlus + Swagger接口快速开发及微服务治理基础环境

本人开发微服务接口的一些基础运用分享 学习需要的基础:Maven多模块依赖相关知识,SpringCloud微服务组件知识的了解及应用经验,SpringBoot + MyBatisPlus整合的开发经验,SwaggerUI接口文档的使用。 1.以下是本人搭建的微服务基础接口开发环境截图 值得注意的是,微服务开发是在Maven的多模块环境下开发的,在开发之前,需要有很好的Maven开发基...

汉南最後の読書人 2459

Mybatis Plus基础07 type-aliases-package配置(实体对象扫描包)

学习目标: 简化操作 配置 type-aliases-package实体对象扫描包 学习产出: 1、为什么配置这个? 简单的说就是简化一个操作步骤 简化哪里的操作:简化xml文件中resultType中指定路径配置 2、哪里配置? 在项目的application配置文件中 //配置指定实体类文件路径,在使用的时候,会扫描这个文件下的内容 mybatis-plus.type-aliases-package=com.example.demo.domain 配置后就可以省去前面的路径,直接写类名 .

TestingShare 1万+

MyBatisPlus快速入门(五)MyBatisPlus的常用配置

本文讲解MyBatisPlus框架的一些常用的配置项,根据具体需求还可以进行其他配置,例如缓存配置、日志配置等。通过合理配置这些项,可以实现对数据库的增删改查操作,并且提供了一些便捷的功能和插件来简化开发。

Designer 小郑的技术博客 3641

MybatisPlus常用配置

MyBatis 配置⽂件位置,如果有单独的 MyBatis 配置,请将其路径配置到 configLocation 中。 MyBatis Configuration 的具体内容请参考MyBatis 官⽅⽂档Spring Boot:Spring MVC: 1.2、mapperLocations(加载Mybatis的映射配置类) MyBatis Mapper 所对应的 XML ⽂件位置,如果您在 Mapper 中有⾃定义方法(XML 中有⾃定义实现),需要进行该配置,告诉 Mapper 所对应的 XML ⽂

凉茶铺的博客 9344

【安装文档】TRex流量分析仪保姆级安装指南--基于VMware虚拟机(ubantu18.04@Intel 82545EM

如果之前添加了网卡,这里就可以看见有3个网卡(没添加的现在再加也行),* Active *为Linux内核正在使用的网卡,另外两张是未启用的网卡(注:未启用的网卡在终端中使用ifconfig命令是查不到的,需要先使用ip addr找出网卡,再激活,此时网卡会变为* Active *状态。

lingshengxiyou的博客 2130

一、两电平IGBT整流器

电压源换流器(Voltage source converter,VSC)连接交流主网和直流电网,起到交直流网络连接、功率输送和电能变换的作用。采用电压控制手段可维持直流电压的稳定;或采用功率控制手段保证系统功率输出达到预期。VSC的三相电压平衡方程如式(1)所示:式中,igx和ugx分别表示主网三相电流与电压(x=a,b,c);ucx表示换流器VSC 交流输出电压;Rg表示交流主网等效电阻;Lg表示交流主网等效电感。

TUCHACHINA的博客 4165

mybatis-plus: type-aliases-package: 解释!!!

在 MyBatis-Plus 中,配置的作用是为指定包下的类自动创建类型别名,从而简化 XML 配置文件中的类名引用。下面是对这项配置的详细解释。

qq_56947957的博客 2446

卫星载荷应用方案

本文将从技术和应用层面探讨卫星载荷的应用方案,分析各个领域的特点和挑战,以期为卫星载荷的应用提供一定的指导和参考。卫星载荷应用方案涵盖了通信、地球观测、气象预报、导航定位等诸多领域在每一个领域中,都存在着不同的技术挑战和应用需求。随着技术的进步和需求的变化,卫星载荷应用方案将不断发展和完善,为人类社会的进步和发展做出更大的贡献。用户可以通过接收多颗卫星的信号,计算自身的位置和速度信息。在覆盖扩展方面,可以采用多星座、MEO、GEO 等不同轨道高度的卫星布局,结合卫星的特点和应用需求,实现覆盖范围的扩展。

muyangjun的专栏 904

mybatis-plus整合过程typeAliasesPackage的坑

近期在用ruoyi-cloud二开一个项目,整合过程中由于原来的业务模块是使用mybatis-plus,所以统一把common-core的配置增加了mybatis-plus-boot-starter。检查了一圈也没发现问题,对报错位置的TypeAliasRegistry.resolveAlias(TypeAliasRegistry.java:116)进行debug,发现启动过程没没有针对typeAliasesPackage配置的包进行扫码,造成实体类的别名没有生成记录。

storm1979的专栏 1402

使用fluent计算流噪声_Fluent能够做的事

刚接触到fluent的同学们,应该会比较好奇,fluent能够做些什么事情,和你的研究有没有关联,能不能达到你的目的?如果不弄明白这样一点,前期可能会做很多无用功。 fluent是计算流体力学的软件,是一个工具。这样一个工具发展至今,可以用来模拟的绝不只有流体力学。下面我们依次来说明。首先是流动,fluent提供了非常丰富的流动模型,不仅可以模拟层流,同样还可以模拟...

weixin_28717647的博客 4858

热视觉2:使用Python和OpenCV从图像中测量温度

这篇博客将介绍学习热/中远红外视觉的基础知识,gray8 和 gray16 图像(即最常见的热成像格式)之间的差异,学习如何使用Python和OpenCV从热图像中的每个像素点测量温度,并以不同的调色板显示结果。以及如何实时计算视频流和UVC热像仪的每个像素温度。

qq_40985985的博客 6712

SpringCloud微服务学习笔记(一)_MybatisPlus

但是以上的写法,本应写在mapper层的构造sql语句的代码却在service层实现,这是不符合业务代码规范的除了where条件部分在Wrapper定义,其他部分自己在mapper或mapper映射xml中定义service层@Testmapper层映射xml中</update>

m0_64213455的博客 745

RPA与旅游与酒店行业自动化实战案例

1. 背景介绍 1.1 旅游与酒店行业的挑战 旅游与酒店行业是一个高度竞争的市场,企业需要不断提高服务质量、降低成本、提高效率以保持竞争力。在这个过程中,企业面临着诸多挑战,如客户需求多样化、市场变化快速、人力资源成本高昂等。为了应对这些挑战,企业需要寻求新的技术手段来提高运营效率。

AI天才研究院 615

MyBatisPlus--黑马2024最新SpringCloud微服务开发与实战前置技能学习笔记

我们可以利用MyBatis的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分。

qq_56435346的博客 1582

全志F1C100S/F1C200S学习笔记(1)——基础简介及资料

资料: 荔枝派资料下载站 荔枝派github 荔枝派中文论坛 荔枝派DIY-github资料 荔枝派Nano 全流程指南 芒果派 坑网

丨晋丨 1万+

c++对halcon的动态链接库dll封装及调用(细细讲)

本文详细介绍了将Halcon图像处理算法封装为C++动态链接库(DLL)的完整流程,包括7个关键步骤:1)封装Halcon函数并导出CPP文件;2)在C++项目中配置Halcon环境(包含目录、库目录设置);3)验证Halcon代码;4)创建DLL项目并进行环境配置;5)编辑DLL并导出生成文件(.dll、.lib、.h);6)在主项目中配置DLL调用环境;7)编写测试代码验证功能。通过这个流程实现了Halcon算法的模块化封装和复用,文中提供了具体的配置路径和代码示例,重点说明了环境配置细节和文件结构安排

Tianwen_running的博客 969

SpringCloud——MybatisPlus

利用MyBatisPlus的Wrapper来构建复杂的where条件,然后自己定义SQL语句中剩下的部分@Override.eq(status!@Override//通过id查找用户throw new RuntimeException("扣减失败,用户不存在");//判断用户状态throw new RuntimeException("扣减失败,用户被冻结");//判断账户余额throw new RuntimeException("扣减失败,余额不足");

l_tian_tian_的博客 1145

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

MybatisPlus学习笔记

自定义Mapper继承MyBatis-Plus提供的BaseMapper接口泛型为实体类类型// 1.构建条件// 2.自定义SQL方法调用在mapper.xml中自定义sql或者使用注解@Service要让MybatisPlus处理枚举与数据库类型自动转换,我们必须告诉MybatisPlus,枚举中的哪个字段的值作为数据库值。

lqw_675的博客 2053

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

springcloud +mybatisplus实现分页功能

springcloude +mybatisplus实现分页功能 1.采用pagehelper方法 这种方法自己在网上找了很多资料,但是没用使用成功。或许是版本冲突的原因,这里我重点记录下第二种方法,使用mybatisplus内置的分页方法 2.mybatisplus内置的分页方法 不需要导入第三方jar包,在mybatisplus的基础上 添加一个拦截器 ,实现类在调用mapper是多传一个Page 参数即可。 2.1 拦截器 package com.dfjg.tiku.tikubnczhomeworka

weixin_47679150的博客 2026

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SpringCloud微服务、MybatisPlus

微服务是一种软件架构风格,它是以专注于单一职责的很多小型项目为基础,组合出复杂的大型应用1 引入MyBatisPlus依赖 代替MyBatis依赖2 自定义的Mapper继承MyBatisPlus提供的BaseMapper接口继承的泛型是实体类MyBatisPlus通过扫描实体类,并基于反射获取实体类信息作为数据库表信息MP自动实现增删改查的原理:1 类名驼峰转下划线作为表名2 名为id的字段作为主键3 变量名驼峰转下划线作为表的字段名使用@TableField的常见场景: 成员变量名与数据库字段名不一

yyds_mn的博客 1097

SpringCloud-MybatisPlus

springCoud-MybatisPlus笔记-1

2301_79927388的博客 707

快速搭建springcloud+mybatisplus

快速搭建springcloud+mybatisplus

hq1148365306的博客 2217

SpringCloud微服务01-MybatisPlus-Docker

一、微服务介绍 单体架构所有功能集群在一个架构中,难以维护复杂需求微服务之间是不同的TomCat要跨服务查询,学习是如何拆分单体架构为微服务这个mapper继承BaseMapper后就可以直接使用它的方法,增删改查。继承就可以直接操作对应的数据表原因在于实体类,我们需要遵循一些约定才能自动实现如果有不想遵循这些约定的内容就需要在实体类中注解。除了实体包名和mapper地址,其余都是默认设置即可。 MyBatisPlus适合单表查询,多表还是需要自己写SQLwhere的条件不一定是id可能更加负责,Wrap

qq_52439738的博客 1086

SpringCloud启动——MybatisPlus(MP)

前面条件构造器的写法,没有在mapper中获得数据,是在测试类中演示,等于说是在业务层service中来获得这个数据的。但是在有的企业开发中是不允许的,获取数据只能在mapper中,这时该怎么办呢?(如下where语句都很复杂,但是用mp自动生成就很简单一个或者两个方法就完成了,还有就是查询COUNT(id) AS total查询数量并且起别名mp就做不到了)这就需要自定义SQL来完成了。

2401_84927284的博客 1004

SpringCloud学习笔记

Docker会在运行镜像时创建一个隔离环境,称为容器(container),不同的应用相互运行不干扰,可以运行n多应用甚至mysql集群等。Dockers Compose通过一个单独的docker-compose.yml模板文件(YAML格式)来定义一组相关联的应用容器,帮助我们实现多个相互关联的Docker容器的快速部署,一般一个Docker Compose文件对应一个项目,其中有项目所需要的所有的服务。1、Docker run:创建并运行一个容器,-d是让容器在后台运行而不是命令行,一般都会加上。

2503_91700196的博客 1190

SpringCloud集成MybatisPlus,实现MySQL多数据源配置

配置多数据源 在application.properties中配置多数据源: 配置解释 配置MybatisPlus 在application.properties中配置MybatisPlus: 配置MybatisPlus解释 配置Mapper 创建一个Mapper接口,例如UserMapper: 使用多数据源 在需要使用多数据源的地方,使用@MapperScan注解指定Mapper所在包路径: CRUD示例 使用不同数据源 要使用不同的数据源查询,可以在Mapper接口中使用@MapperScan注

1251
上一篇: 【学习笔记】手写一个简单的 Spring MVC
下一篇: 【学习笔记】【SpringCloud】安装 Docker
LearnTech_123
博客等级 码龄3年 445粉丝 31原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值