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

news/2024/10/18 2:34:56/

目录

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.ppmy.cn/news/47229.html

相关文章

图解项目延期的原因及解决应对方案大全

项目管理中经常出现项目延期的情况,面对项目延期的风险如何应对是考验每个项目经理管理水平的时候,很多人纵然是工作多年也没有对延期的种种情况进行总结思考。 咱们社区的小竹对大家常见的项目延期情况及处理方案进行了详细全面的总结,供大…

Kotlin 泛型的使用

一、Kotlin 泛型是一种允许在编译时指定类型参数的机制&#xff0c;它可以提高代码的重用性和类型安全性。 Kotlin 泛型使用尖括号&#xff08;< >&#xff09;来指定类型参数。Kotlin 泛型支持类泛型、接口泛型和方法泛型。Kotlin 泛型可以在类、函数、接口和委托中使用…

Linux命令行操作/选项介绍,文件分类/内容与属性/绝对相对路径,隐藏文件与整个目录结构

Linux的命令行操作介绍 Linux操作的特点&#xff1a;纯命令行&#xff0c;当然Linux它也有图形化界面或桌面版。Windows也有命令行&#xff0c;也有图形化界面。不过它是面向普通客户的操作系统&#xff0c;所以必须得是好用好玩的&#xff0c;所以图形化界面那是必然。无论是…

Linux-初学者系列——篇幅3_操作界面获取帮助

操作界面获取帮助-目录 1、获取帮助信息-man2、获取帮助信息-help3、获取帮助信息-info 上篇: Linux-初学者系列——篇幅2_系统命令界面 利用帮助命令自学&#xff1a;man help info1、获取帮助信息-man 查看命令和部分文件帮助说明信息 使用方法&#xff1a; man [参数选项…

PHP快速入门07-Cookie与Session的说明与使用

文章目录 前言一、关于Cookie和Session1.1 Cookie1.2 Session 二、Cookie和Session的使用2.1 Cookie的使用例子2.2 Session的使用例子 总结 前言 本文已收录于PHP全栈系列专栏&#xff1a;PHP快速入门与实战 Cookie和Session是一个Web开发几乎不可避免的东西&#xff0c;是网站…

【Linux网络设置】

目录 一、查看网络接口信息1.1、查看所有活动的网络接口信息1.2、查看指定网络接口信息 二、查看主机名称2.1、hostname命令2.2、永久设置主机名 三、查看路由表条目route命令 四、查看网络连接情况4.1、netstat命令4.2、ss命令 五、测试网络连接ping命令 6、跟踪数据包tracerr…

UniLM模型简单介绍

目录 一、概要 二、深入扩展 2.1 预训练任务 2.2 模型精调 一、概要 如果将基于Transformer的双向语言模型&#xff08;如BERT模型中的掩码语言模型&#xff09;与单向的自回归语言模型&#xff08;如BART模型的解码器&#xff09;进行对比&#xff0c;可以发现&#xff0c…

c# 通过webView2模拟登陆小红书网页版,解析无水印视频图片,以及解决X-s,X-t签名验证【2023年4月15日】

一、c# WebView2简介 1.一开始使用WebBrowser&#xff0c;因为WebBrowser控件使用的是ie内核&#xff0c;经过修改注册表切换为Edge内核后&#xff0c; 发现Edge内核版本较低&#xff0c;加载一些视频网站提示“浏览器版本过低“&#xff0c;”视频无法加载“。 2.WebBrowser…