【MyBatis Plus】003 -- 配置(基本、进阶、DB策略) 条件构造器

news2025/1/31 3:42:11

目录

4、配置

4.1 基本配置

4.1.1 configLocation (MyBatis 配置文件位置)

4.1.2 mapperLocations(MyBatis Mapper 所对应的 XML 文件位置)

4.1.3 typeAliasesPackage (别名包扫描路径)

4.2 进阶配置

4.2.1 mapUnderscoreToCamelCase (是否开启自动驼峰命名规则(camel case)映射)

4.2.2 cacheEnabled (二级缓存开关)

4.3 DB 策略配置

4.3.1 idType(主键生成策略)

4.3.2 tablePrefix (指定表名前缀)

5、条件构造器

5.1 allEq

5.1.1 说明

5.2 基本比较操作(eq/ne/gt/ge/lt/le/between/notBetween/in/notIn)

5.3 模糊查询(like/notlike/likeleft/likeRight)

5.4 排序

5.5 逻辑查询

5.6 select (指定查询字段)


4、配置

在MP中有大量的配置,其中有一部分是Mybatis原生的配置,另一部分是MP的配置,详情: 使用配置 | MyBatis-Plus

下面我们对常用的配置做讲解:

4.1 基本配置

4.1.1 configLocation (MyBatis 配置文件位置)

MyBatis 配置文件位置,如果您有单独的 MyBatis 配置,请将其路径配置到 configLocation 中。 MyBatis Configuration 的具体内容请参考MyBatis 官方文档

Spring Boot:(application.properties),指定全局的配置文件

Mybatis-config.xml:(但一般我们还是会用专门的配置类来管理第三方插件

Spring MVC:(applicationContext.xml)

4.1.2 mapperLocations(MyBatis Mapper 所对应的 XML 文件位置)

MyBatis Mapper 所对应的 XML 文件位置,如果您在 Mapper 中有自定义方法(XML 中有自定义实现),需要进行该配置,告诉 Mapper 所对应的 XML 文件位置。

Spring Boot:

Spring MVC:

注意:Maven 多模块项目的扫描路径需以 classpath*: 开头 (即加载多个 jar 包下的 XML 文件)

测试SpringBoot方法中的自定义Mapper方法:(UserMapper.xml)

Mapper方法:

测试用例:

运行结果:

4.1.3 typeAliasesPackage (别名包扫描路径)

MyBaits 别名包扫描路径,通过该属性可以给包中的类注册别名,注册后在 Mapper 对应的 XML 文件中可以直接使用类名,而不用使用全限定的类名(即 XML 中调用的时候不用包含包名)

Spring Boot:

Spring MVC:

测试SpringBoot方式中的实体对象扫描包:

定义完扫描包,我们就可以讲UserMapper中的全类名省略,只写个类名即可:

测试用例:

运行结果:(运行成功,正常返回)

4.2 进阶配置

本部分(Configuration)的配置大都为 MyBatis 原生支持的配置,这意味着您可以通过 MyBatis XML 配置文件的形式进行配置

4.2.1 mapUnderscoreToCamelCase (是否开启自动驼峰命名规则(camel case)映射)

是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN(下划线命名) 到经典 Java 属性名 aColumn(驼峰命名) 的类似映射。

示例(SpringBoot):

错误结果:

为什么?

因为如果我们配置了mybatis-plus.config-location 这就意味着我们可以在指定的配置文件中做一些相关的配置项,而这个自动驼峰映射的配置项应该挪到配置文件中才行

4.2.2 cacheEnabled (二级缓存开关)

全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存,默认为 true

示例:

4.3 DB 策略配置

4.3.1 idType(主键生成策略)

全局默认主键类型,设置后,即可省略实体对象中的@TableId(type = IdType.AUTO)配置

示例:SpringBoot:

SpringMVC:

4.3.2 tablePrefix (指定表名前缀)

表名前缀,全局配置后可省略@TableName()配置,但要求数据库表要具有统一的格式,如具有统一的前缀:tb_

示例:

SpringBoot:

SpringMVC:

5、条件构造器

在MP中,Wrapper接口的实现类关系如下:

可以看到,AbstractWrapperAbstractChainWrapper是重点实现,接下来我们重点学习AbstractWrapper以及其子类

官网文档地址: 条件构造器 | MyBatis-Plus

5.1 allEq

5.1.1 说明

测试用例:

设置过滤后的AllEq:如果不满足条件,则不会查询该字段,如下方示例所示,即只会按照name和age作为条件进行查询

5.2 基本比较操作(eq/ne/gt/ge/lt/le/between/notBetween/in/notIn)

测试用例:

5.3 模糊查询(like/notlike/likeleft/likeRight)

测试用例:

5.4 排序

测试用例:

5.5 逻辑查询

测试用例:

5.6 select (指定查询字段)

在MP查询中,默认查询所有的字段,如果有需要也可以通过select方法进行指定字段

测试用例:

返回结果:只有指定的字段可以返回,其它都为null

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

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

相关文章

代码随想录算法训练营第五十七天 | 647. 回文子串、516. 最长回文子序列、动态规划总结

647. 回文子串 动规五部曲 1、确定dp数组(dp table)以及下标的含义 在判断字符串S是否为回文时,如果知道 s[1],s[2],s[3] 这个子串是回文的,那么只需要比较 s[0]和s[4]这两个元素是否相同,如果…

NodeJS Cluster模块基础教程

Cluster简介 默认情况下,Node.js不会利用所有的CPU,即使机器有多个CPU。一旦这个进程崩掉,那么整个 web 服务就崩掉了。 应用部署到多核服务器时,为了充分利用多核 CPU 资源一般启动多个 NodeJS 进程提供服务,这时就…

【java】面向对象的编程基础

文章目录面向对象的编程基础定义方法重载执行顺序静态变量和方法加载顺序包和访问控制类的封装object类方法重写抽象类接口枚举类面向对象的编程基础 定义 public class person { String name; int age; char sex; person(String name,int age,char sex) {this.ageage;this.…

【华为OD机试】1043 - 从单向链表中删除指定值的节点

文章目录一、题目🔸题目描述🔸输入输出🔸样例1🔸样例2二、代码参考作者:KJ.JK🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 🌈 &am…

计算机网络笔记(横向)

该笔记也是我考研期间做的整理。一般网上的笔记是按照章节纪录的,我是按照知识点分类纪录的,大纲如下: 文章目录1. 各报文1.1 各报文头部详解1.2 相关口诀2. 各协议2.1 各应用层协议使用的传输层协议与端口2.2 各协议的过程2.2.1 数据链路层的…

零死角玩转stm32中级篇2-IIC总线

本篇博文目录:一.IIC基础知识1.什么是IIC总线2.IIC总线和串口有什么区别3.IIC总线是怎么实现多机通信4.仲裁是什么5.如果当前有一个从机进行了IIC通信又来了一个优先级高的从机,这时会打断前一个通信吗?6.IIC是怎么保证地址的唯一性7.在IIC总线协议中,规…

走进小程序【六】微信小程序架构之【视图层】万字详解

文章目录🌟前言🌟小程序架构🌟视图层 View🌟WXML🌟数据绑定🌟列表渲染🌟条件渲染🌟模板🌟WXSS🌟尺寸单位🌟样式导入🌟内联样式&#x…

VIM 编辑器使用教程

我们如果要在终端模式下进行文本编辑或者修改文件就可以使用 VI/VIM 编辑器,Ubuntu 自带了 VI 编辑器,但是 VI 编辑器对于习惯了 Windows 下进行开发的人来说不方便,比如竟然 不能使用键盘上的上下左右键调整光标位置。因此我推荐大家使用 V…

PADS-按键、蜂鸣器、继电器PCB封装设计

1 按键PCB封装设计 1.1 查看元件手册, 得知焊盘尺寸,同时需要观察按键,用丝印来进行表示。 1.2 进入PADS-Layout 无模命令UMM G0.254 GD0.254进行设计 放置一个表贴端点,更改矩形尺寸,同时计算与原点的距离,这里我们按…

流量整形(GTS和LR)

Generic Traffic Shaping通用流量整形 通用流量整形(简称GTS)可以对不规则或不符合预定流量特性的流量进行整形,以保证网络上下游之间的带宽匹配,避免拥塞发生。 GTS与CAR一样,都采用了令牌桶技术来控制流量。GTS与CAR的主要区别在于:利用CAR进行报文流量控制时,…

DFIG控制7:不平衡电网下的转子侧控制

DFIG控制7:不平衡电网下的转子侧控制。主要是加入了转子侧的电流负序分量控制器。 本文基于教程的第7部分: DFIM Tutorial 7 - Asymmetrical Voltage Dips Analysis in DFIG based Wind Turbines 控制策略简介 来自: H. Abu-Rub, M. Malin…

【Java实现】约瑟夫问题的Java代码实现

约瑟夫问题(Josephus Problem)是一个经典的数学问题,描述了一群人围成一圈报数,每报到第几个人就会被杀死,直到最后只剩下一个人。 1)设编号为 1,2,3 ... n 的 n 个人围坐一圈。 2&…

MySQL之数据类型

目录 一 数值类型 1 int类型,以tinyint为例 范围: 越界问题: 验证: 2 bit(位) 应用: 显示问题: 3 小数 1 float[(M,D)] [unsigned] 范围: 2 decimal 精度问…

TCP分包和粘包

文章目录TCP分包和粘包TCP分包TCP 粘包分包和粘包解决方案:TCP分包和粘包 TCP分包 场景:发送方发送字符串”helloworld”,接收方却分别接收到了两个数据包:字符串”hello”和”world”发送端发送了数量较多的数据,接…

神策数据荣获“MarTech 领域最具商业合作价值企业”称号

近日,数据猿 2023 年度 3 月“企业盘点”活动落下帷幕,《2023 中国 MarTech 领域最具商业合作价值企业盘点》正式对外发布。神策数据依托在 MarTech 领域的专业度与知名度,被评为“MarTech 领域最具商业合作价值企业”。本次盘点活动从企业相…

pytorch 线性回归总结

测试1(y3∗x1−4∗x2y3*x_{1}-4*x_{2}y3∗x1​−4∗x2​),lr1e-2 %matplotlib inline import torch import numpy as np torch.manual_seed(1) from torch.nn import Linear from torch.autograd import Variable import torch.nn as nn import random np.random.seed(1) rand…

代码随想录-68-669. 修剪二叉搜索树

目录前言题目1.按照二叉搜索树特性遍历整棵二叉搜索树,2. 本题思路分析:3. 算法实现4. 算法坑点前言 我在刷卡哥的“代码随想录”,自己的总结笔记均会放在“算法刷题-代码随想录”该专栏下。 代码随想录此题链接 题目 1.按照二叉搜索树特性…

JavaWeb开发 —— JavaScript(JS)

目录 一、什么是JavaScript ? 二、引入方式 三、基础语法 1. 书写语法 2. 输出语句 3. 变量 4. 数据类型 5. 运算符 6. 类型转换 四、函数 五、对象 1. Array数组 2. String 字符串 3. JSON 4. BOM 5. DOM 六、时间监听 一、什么是JavaSc…

MAE论文笔记+Pytroch实现

Masked Autoencoders Are Scalable Vision Learners, 2021 近期在梳理Transformer在CV领域的相关论文,落脚点在于如何去使用Pytroch实现如ViT和MAE等。通过阅读源码,发现不少论文的源码都直接调用timm来实现ViT。故在此需要简单介绍一下timm…

Vulnhub_Pylington

目录 一、信息收集 (一)端口服务探测 (二)目录扫描 二、漏洞挖掘 (一)robots敏感信息泄露 (二)python IDE沙箱绕过RCE 1. python敏感函数沙盒绕过 2. exec(__import_…