当前位置: 首页 > article >正文

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

目录

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.kler.cn/news/10243.html

相关文章:

  • Linux下使用ClamAV病毒查杀
  • Lottie加载的一些坑
  • 【OpenCV-Python】cvui 之 trackbar
  • 因果推断14--DRNet论文和代码学习
  • 如果让你做技术负责人,你会怎么设计后端架构?
  • 查看 Elasticsearch 分析器
  • selenium库有哪些功能呢?都是如何实现的呢?
  • ( “树” 之 DFS) 543. 二叉树的直径 ——【Leetcode每日一题】
  • Git的安装与基本使用
  • 2021蓝桥杯真题大写 C语言/C++
  • 计算机网络笔记(横向)
  • 代码随想录算法训练营第三十四天-贪心算法3| 1005.K次取反后最大化的数组和 134. 加油站 135. 分发糖果
  • 微服务+springcloud+springcloud alibaba学习笔记【Eureka服务注册中心】(3/9)
  • C++标准库--IO库(Primer C++ 第五版 · 阅读笔记)
  • 离散数学_第二章:基本结构:集合、函数、序列、求和和矩阵(1)
  • 探索树形数据结构,通识树、森林与二叉树的基础知识(专有名词),进一步利用顺序表和链表表示、遍历和线索树形结构
  • 梯度的看法
  • MyBatis配置文件 —— 相关标签详解
  • 干翻Hadoop系列之:Hadoop前瞻之分布式知识
  • Leetcode.1992 找到所有的农场组
  • NumPy 秘籍中文第二版:十、Scikits 的乐趣
  • vue3+TS+Pinia+Vite项目实战之一
  • 程序员的日常瞎想,个人规划,和企业把控之间的微妙关系。职场人你懂!!
  • WPF MVVM模式构建项目
  • “三步走”推动云原生转型之路
  • Unity资源-音效初识
  • 【MySQL】表的约束
  • Wijmo JavaScript UI 5.20222.877 Crack
  • ESLint的配置
  • 使用向量机(SVM)算法的推荐系统