Mybatis-Plus(三)--Mybatis-Plus配置和条件构造器

一.配置

在MP中有大量的配置,其中有一部分是Mybatis原生的配置,另一部分是MP的配置,详情:https://mybatis.plus/config

1.基本配置

【1】configLocation--自己单独的MyBatis配置的路径

#MyBatis配置文件位置,如果您有单独的MyBatis配置,请将其路径配置到configLocation中
mybatis-plus.config-location=classpath:mybatis-config.xml

SpringMVC的xml中写法:

<bean id="sqlSessionFactory"
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean"><property name="configLocation" value="classpath:mybatis-config.xml"/>
</bean>

【2】mapperLocations--MyBatis Mapper所对应的XML文件位置


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

mybatis-plus.mapper-locations=classpath*:mybatis/*.xml

SpringMVC的xml中写法:

<bean id="sqlSessionFactory"
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean"><property name="mapperLocations" value="classpath*:mybatis/*.xml"/>
</bean>

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

【3】typeAliasesPackage--给包中的类注册别名,使得Mapper对应的XML文件中可以直接使用类名,而不用使用全限定的类名 
 

mybatis-plus.type-aliases-package=cn.itcast.mp.pojo

SpringMVC的xml中写法:

<bean id="sqlSessionFactory"
class="com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean"><property name="typeAliasesPackage" 
value="com.baomidou.mybatisplus.samples.quickstart.entity"/>
</bean>

2.进阶配置(MyBatis原生的配置)

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

【1】mapUnderscoreToCamelCase--开启自动驼峰命名规则映射

#关闭自动驼峰映射,该参数不能和mybatis-plus.config-location同时存在
mybatis-plus.configuration.map-underscore-to-camel-case=false

【2】cacheEnable--全局地开启或关闭配置文件中的所有映射器已经配置的任何缓存

mybatis-plus.configuration.camel-enabled-=false

3.DB策略配置

【1】idType--全局默认主键属性,设置后,即可省略实体对象中的@TableId(type=IdType.AUTO)配置。

mybatis-plus.global-config.db-config.id-type=auto

【2】tablePrefix--表名前缀,全局配置后可以省略@TableName属性

mybatis-plus.global-config.db-config.table-prefix=tb_

二.条件构造器

接下去,我们重点学习AbstractWrapper以及其子类

【1】allEq

QueryWrapper<User> wrapper=new QueryWrapper<>();//设置条件Map<String,Object> params=new HashMap<>();params.put("name","曹操");params.put("age","20");params.put("password",null);//SELECT * FROM tb_user WHRER password IS NULL AND name = ? AND age = ?wrapper.allEq(params);//SELECT * FROM tb_user WHRER AND name = ? AND age = ?
//        wrapper.allEq(params,false);List<User> users=this.userMapper.selectList(wrapper);for (User user:users){System.out.println(user);}

【2】基本比较操作

eq(=),ne(不等于),gt(大于),ge(大于等于),It(小于),Ie(小于等于)
between(BETWEEN 值1 AND 值2),notBetween(NOT BETWEEN 值1 AND 值2)
in--字段IN(value.get(0),value.get(1),...)
notIn--字段NOT IN(v0,v1,...)

【3】模糊查询

like,noLike,likeLeft,likeRight

//SELECT id,user_name,password,name,age,email FROM tb_user WHERE name LIKE "%曹%"
wrapper.like("name","曹");
//SELECT id,user_name,password,name,age,email FROM tb_user WHERE name not LIKE "%曹%"
wrapper.noLike("name","曹");
//SELECT id,user_name,password,name,age,email FROM tb_user WHERE name LIKE "%曹"
wrapper.likeLeft("name","曹");
//SELECT id,user_name,password,name,age,email FROM tb_user WHERE name LIKE "曹%"
wrapper.likeRight("name","曹");

【5】逻辑是or还是and(默认是and)

.or()
.and()

//SELECT id,name,age FROM tb_user WHERE name=? and age=?
wrapper.eq("name","李四").or().eq("age",24).select("id","name","age");

【6】select--通过select方法进行指定要查询哪些字段

//SELECT id,name,age FROM tb_user WHERE name=? and age=?
wrapper.eq("name","李四").eq("age",24).select("id","name","age");

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

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

相关文章

Spring-缓存初步认识

Spring-缓存 简单介绍 缓存是一种介于数据永久存储介质和数据应用之间的数据临时存储介质缓存有效提高读取速度&#xff0c;加速查询效率 spring使用缓存方式 添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring…

海康摄像头开发笔记(一):连接防爆摄像头、配置摄像头网段、设置rtsp码流、播放rtsp流、获取rtsp流、调优rtsp流播放延迟以及录像存储

文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/131679108 红胖子(红模仿)的博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结…

每日一题——反转链表

题目 给定一个单链表的头结点pHead(该头节点是有值的&#xff0c;比如在下图&#xff0c;它的val是1)&#xff0c;长度为n&#xff0c;反转该链表后&#xff0c;返回新链表的表头。 数据范围&#xff1a;0≤n≤1000 要求&#xff1a;空间复杂度 O(1) &#xff0c;时间复杂度 O…

Python实战项目——旅游数据分析(四)

由于有之前的项目&#xff0c;所以今天我们直接开始&#xff0c;不做需求分析&#xff0c;还不会需求分析的可以看我之前的文章。Python实战项目——用户消费行为数据分析&#xff08;三&#xff09; 导入库 import numpy as np import pandas as pd import matplotlib.pyplo…

PHP后台登录功能单账号登录限制

PHP后台登录功能单账号登录限制 单账号登陆是什么第一步创建数据表第二步创建登录页面test2.html第三步创建登录提交test2.php第四步访问后台首页第五步演示 单账号登陆是什么 一个用户只能登录一个账号通常被称为单账号登录限制或单用户单账号限制。这意味着每个用户只能使用…

Linux 学习记录53(ARM篇)

Linux 学习记录53(ARM篇) 本文目录 Linux 学习记录53(ARM篇)一、内存读写指令1. 在C语言中读取内存2. 指令码及功能3. 格式4. 使用示例5. 寻址方式(1. 前索引方式(2. 后索引方式(3. 自动索引 6.批量寄存器操作指令(1. 操作码(2. 格式(3. 使用示例(4. 地址增长方式>1 ia后缀&…

========Java基础——小结1========

一、Java 两大版本 Java 主要分为两个版本: Java SE 和Java EE。 Java SE 全称Java Platform Standard Edition&#xff0c;是 Java 的标准版&#xff0c;主要用于桌面应用程序开发&#xff0c;它包含了 Java 语言基础、JDBC (Java 数据库连接)、I/O (输入/输出)、TCP/IP 网络…

2.8 Android ebpf帮助函数解读(七)

121.long bpf_read_branch_records(struct bpf_perf_event_data *ctx, void *buf, u32 size, u64 flags) 描述:对于附加到 perf 事件的 eBPF 程序,检索与 ctx 关联的分支记录(struct perf_branch_entry),并将其存储在 buf 指向的缓冲区中,最大大小为size字节。 返回值:…

股票基金入门知识

1.开盘价和收盘价如何产生 时间9:30-11:30 13:00-15:00 集合竞价时间段&#xff1a;9:15-9:25 以此产生开盘价 最后集中竞价时间段&#xff1a;深市14:57-15:00 &#xff0c;以此产生收盘价。 沪市则采用最后一分钟加权得出收盘价影响股价的因素 市场投资情绪&#xff0c;宏观…

Hadoop——DataGrip连接MySQL|Hive

1、下载 DataGrip下载&#xff1a;DataGrip: The Cross-Platform IDE for Databases & SQL by JetBrains 2、破解 破解链接&#xff1a;https://www.cnblogs.com/xiaohuhu/p/17218430.html 3、启动环境 启动Hadoop&#xff1a;到Hadoop的sbin目录下右键管理员身份运行…

Spring Boot 全局异常处理

Spring Boot 全局异常处理 ErrorCode.java (此枚举类中包含了异常的唯一标识、HTTP 状态码以及错误信息) 这个类的主要作用就是统一管理系统中可能出现的异常&#xff0c;比较清晰明了。但是&#xff0c;可能出现的问题是当系统过于复杂&#xff0c;出现的异常过多之后&#…

【C++】list 模拟笔记

文章目录 list定义结点类&#xff08;list_node&#xff09;为什么封装迭代器为类 &#xff1f;库里面模板多参数的由来 &#xff1f;为什么普通迭代器不能隐式类型转换成const迭代器&#xff1f;迭代器位置指向及其返回值和整体代码 list list 和前面学习的 string 和 vector …

微信小程序使用ECharts的示例详解

目录 安装 ECharts 组件使用 ECharts 组件图表延迟加载 echarts-for-weixin 是 ECharts 官方维护的一个开源项目&#xff0c;提供了一个微信小程序组件&#xff08;Component&#xff09;&#xff0c;我们可以通过这个组件在微信小程序中使用 ECharts 绘制图表。 echarts-fo…

excel中单行换成多行

今天碰以下情况&#xff1a; 这在excel表中是在一个单元格&#xff0c;现在需要对其进行转换&#xff0c;将一个单元格换成多行 步骤&#xff1a; 1.删除换行符&#xff0c;添加一个逗号 2.选择数据-分列-分隔字符-逗号-确定 3.复制上述数据&#xff0c;选择性粘贴-转置 完…

MemberApplication

目录 1 MemberApplication 1.1 /// 发送验证码 1.1.1 //验证码超时时间 1.2 /// 验证码验证 MemberApplication /// 发送验证码

2816. 判断子序列

题目链接&#xff1a; 自己的做法&#xff1a; #include <bits/stdc.h>using namespace std;const int N 1e5 10; int a[N], b[N]; int main() {int n, m;bool flag true;scanf("%d%d", &n, &m);for (int i 0; i < n; i) scanf("%d"…

笙默考试管理系统-MyExamTest(10)

笙默考试管理系统-MyExamTest&#xff08;10&#xff09; 目录 一、 笙默考试管理系统-MyExamTest 二、 笙默考试管理系统-MyExamTest 三、 笙默考试管理系统-MyExamTest 四、 笙默考试管理系统-MyExamTest 五、 笙默考试管理系统-MyExamTest 笙默考试管理系统-MyExa…

哈希:探索快速的数据存储和搜索方法

哈希&#xff1a;探索快速的数据存储和搜索方法 哈希表作为一种高效的数据存储结构&#xff0c;可以使数据的存储位置与关键码之间建立一一映射的关系&#xff0c;从而加快元素的搜索速度。然而&#xff0c;哈希方法也面临着哈希冲突的问题&#xff0c;即不同的关键字通过相同…

dxf怎么转换成PDF格式?转换方法其实很简单

PDF文件是一种可靠的文件格式&#xff0c;可以在各种操作系统和软件上打开和查看。而dxf是CAD文件的一种格式&#xff0c;打开它一般都是需要相关的操作软件才能打开&#xff0c;不是特别方便&#xff0c;将dxf文件转换成PDF格式就可以很好的解决这一问题&#xff0c;下面教大家…

解锁新技能《基于logback的纯java版本SDK实现》

开源SDK&#xff1a; <!--Java通用日志组件SDK--> <dependency><groupId>io.github.mingyang66</groupId><artifactId>oceansky-logger</artifactId><version>4.3.6</version> </dependency> <!-- Java基于logback的…