Mybatis-Plus
MyBatis-Plus(简称 MP)是一个 MyBatis 的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。
gblfy
心如向阳,次第花开!
展开
-
mybatis的example.createCriteria()方法学习记录
mybatis的example.createCriteria()方法学习记录原创 2022-10-19 14:17:17 · 461 阅读 · 0 评论 -
MyBatisplus分页插件
文章目录一、后台分页配置1. 配置分页插件2. 编写分页代码3. 测试二、自定义查询2.1. 自定义接口2.2. 自定义查询2.3. 测试自定义分页一、后台分页配置MyBatis Plus自带分页插件(即BaseMapper接口中的selectPage()方法),只要简单的配置即可实现分页功能,具体步骤如下:1. 配置分页插件新创一个配置类,在配置类里面配置分页插件package com.gblfy.flowable.config;import com.baomidou.mybatisplus原创 2022-05-04 17:21:22 · 16830 阅读 · 3 评论 -
pagehelper版本升级导致pageSize为0时无法查询全部数据
前言pageSize为0无效,修改配置springboot版本升级后,pagehelper插件由1.2.3版本升级到1.4.1版本;发现升级之后pageSize为0时无法查询全部数据maven依赖引入旧版本pom.xml配置1.2.3<dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</a原创 2022-05-03 15:13:37 · 2967 阅读 · 2 评论 -
mybatisplus代码生成器3.5.2
Mybatis-plus最新代码生成器(3.5.1+)的使用mybatis-plus 代码生成器(3.5.2) @Autowired private CodeGeneratorMapper codeGeneratorMapper; //ip地址 private String DB_URL = ""; //用户名 private String DB_USERNAME = ""; //密码 private String DB_PASSWD =转载 2022-03-28 18:15:04 · 1405 阅读 · 0 评论 -
mybatis自动生成代码只有insert()和insertSelective()
在jdbc url后增加nullCatalogMeansCurrent=true即可(但此时不会生成withBLOBs类)案例jdbc:mysql://127.0.0.1:3306/dianpingdb?nullCatalogMeansCurrent=true" userId="root" password="123456"原创 2021-11-16 14:37:59 · 1096 阅读 · 0 评论 -
oracle+mybatis查询遇到CHAR类型字段
工作中遇到的:某一张表A的某个字段B的类型为CHAR(4),往表A中插入一条数据,B字段的值为1,表面上(肉眼)看到B的值为1,但实际上为1加3个空格,会出现如下问题:mybatis的sql中用B字段去做查询条件 B='1’时查不到数据,但直接在数据库(通过工具,如navicat/plsql)运行该sql却可以查到数据!解决办法:1、查询条件改为TRIM(B)='1';2、修改数据库,将B字段的类型改为CHAR(1);...原创 2021-10-17 17:37:39 · 422 阅读 · 0 评论 -
mybatisplus 一次性执行多条SQL语句插入(Oracle篇)
文章目录一、数据库部分1. 创建数据库2. 初始化表结构二、代码部分2.1. controller2.2. mapper接口2.3. 映射文件三、测试验证3.1. 发起请求3.2. 查看数据库3.3. 配置文件部分一、数据库部分1. 创建数据库创建more-insert2. 初始化表结构-- 一次性插入多张表测试--oracle 表结构create table HERO( SNO VARCHAR2(20) not null, USER_NAME VARCHAR2(原创 2021-08-19 18:39:35 · 1639 阅读 · 2 评论 -
mybatisplus 一次性执行多条SQL语句插入(Mysql篇)
文章目录一、数据库部分1. 创建数据库2. 初始化表结构二、代码部分2.1. controller2.2. mapper接口2.3. 映射文件三、测试验证3.1. 发起请求3.2. 查看数据库一、数据库部分1. 创建数据库创建more-insert2. 初始化表结构-- 一次性插入多张表测试--mysql 表结构CREATE TABLE `sys_user2`( `user_id` bigint NOT NULL COMMENT '主键id', `account` varch原创 2021-08-19 18:31:42 · 1532 阅读 · 0 评论 -
mybatisplus 一次性执行多条SQL语句
文章目录一、Mysql数据库1. Url2. xml映射文件二、Oracle数据库2.1. 关键点2.2. xml映射文件一、Mysql数据库关键点:在url后面添加&allowMultiQueries=true,sql后面添加分号;1. Url案例:url: jdbc:mysql://localhost:3306/afsdb?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTime原创 2021-08-19 18:21:05 · 3054 阅读 · 0 评论 -
集成多数据源导致分页插件失效
package com.gblfy.config.datasource;import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;/** * @author gblfy * @date 2原创 2021-08-13 18:25:59 · 528 阅读 · 0 评论 -
MyBatis 配置文件 用户密码加密存储
文章目录1. 创建db.properties2. 配置mybatis-config.xml3. 加解密工具类4. 加解密依赖5. 创建SqlSessionFactoryUtil类6. db.properties加密后7. 常量类实现原理:在获取SqlSessionFactory之前,对获取的配置信息做解密操作1. 创建db.propertiesproperties配置文件一般是使用properties保存配置文件内容,然后在mybatis配置文件中进行读取在resource文件下新建db.p原创 2021-08-11 11:37:36 · 1822 阅读 · 0 评论 -
通用mapper 如何处理多表条件查询通过list封装(一对多)
一、通用mapper本身的接口方法,只适用于单表处理,所以多表处理必须去定义xml和专用的pojo类以及mapper接品,强烈推荐采用这种方式,在xml中利用mybatis本身的一对一,一对多的设置技巧完成多表关联,这样省去专门为了视图视图去定义专用的pojo实体。二、mybatis中如何定义一对一的关系:(1)pojo中的定义:班级表:public class Classes {9 ...原创 2019-12-11 23:42:50 · 2836 阅读 · 2 评论 -
mybatis批量插入数据到Oracle中的两种方式
文章目录1. 第1种2. 第2种1. 第1种<insert id="addList" parameterType="java.util.List" useGeneratedKeys="false"> INSERT ALL <foreach item="item" index="index" collection="list"> INTO T_APPLAUD ( ID, USER_ID, BUSINE原创 2021-01-20 19:43:48 · 531 阅读 · 0 评论 -
springboot 整合mybatisplus输出sql语句不输出结果集
mybatis# 日志配置logging: level: #基础包 com.ruoyi: debug #指定报的日志级别 org.springframework: warn# MyBatismybatis: # 搜索指定包别名 typeAliasesPackage: com.ruoyi.**.domain # 配置mapper的扫描,找到所有的mapper.xml映射文件 mapperLocations: classpath*:m原创 2020-12-22 21:35:23 · 4222 阅读 · 0 评论 -
Mybatis-plus 大数据量数据流式查询通用接口
文章目录#######原创 2020-11-19 18:30:17 · 5297 阅读 · 0 评论 -
mybatis批量插入oracle大量数据记录性能问题解决
环境: mybatis + oracle11g r21.使用"直接路径插入"(下面sql语句中的"/*+append_values */"),并且使用关键字"union all":<insert id="addUidCodeBatch" parameterType="java.util.List"> insert into /*+append_values */ T_UID_CODE(C_UID_CODE, C_SERAIL_LEN,原创 2020-11-17 20:03:30 · 1367 阅读 · 0 评论 -
mybatis批量插入10万条数据的优化过程
在使用mybatis插入大量数据的时候,为了提高效率,放弃循环插入,改为批量插入,mapper如下:package com.lcy.service.mapper; import com.lcy.service.pojo.TestVO;import org.apache.ibatis.annotations.Insert; import java.util.List; /** * 功能描述: * * @author liuchaoyong * @version 1.0 * @date原创 2020-11-17 19:42:50 · 6765 阅读 · 2 评论 -
mybatis-plus大批量数据插入缓慢问题
文章目录问题排查结果建议问题最近项目用的mybatis-plus做的映射,有个批处理文件内容的需求,在使用mybatis-plus的批处理方法saveBatch时发现速度特别慢,测试从1000到10000到80000条基本上是线性增加,80000条时差不多要90秒。排查经debug排查sql语句是批量执行,所以应该不是框架本身的问题,由于用的是公司的手脚架,在mysql连接配置中发现了问题这里少配置了一个参数rewriteBatchedStatements=true结果修改前24w数据大概原创 2020-11-17 19:36:36 · 2834 阅读 · 0 评论 -
Mybatis-plus批量插入、批量修改数据saveBatch等速度缓慢
问题:用mybatis批量插入近200条的数据大概用时5s!!这个速度太可怕了解决方案:百度找了很多方案,如并发插入多个线程同时操作,但效果仍不是很明显,并且资源开销大。最终解决方案是数据库连接参数配置了 rewriteBatchedStatements=true 最终得以解决!经过测试速度达到了毫秒级别,100000条数据的情况下也控制在20s以下!...原创 2020-11-17 19:32:36 · 3934 阅读 · 0 评论 -
Mybatis-Plus的SQL语句组拼原理
前言:记录查找自动组拼SQL语句的过程首先在BaseMapper其中的一个方法下打个断点在断点显示的值栏找到相关的SQL发现SQL语句在MappedStatement对象中,而sqlSource存的就是相关的sql语句然后在MappedStatement这个对象打断点,看看到底是哪个对象对它进行了操作发现是AutoSqlInjector创建了MappedStatement在AutoSqlInjector对象找到与selectById相关的一个方法,打断点SqlSource果然在这里创原创 2020-10-19 22:46:14 · 1414 阅读 · 1 评论 -
SpringBoot 集成 mybatisPlus
文章目录一、1. pom2. application.yml3. dao层接口集成baseMapper4. 启动类上+扫描5. 创建数据库6. 初始化表结构7. 浏览器验证一、1. pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmln...原创 2020-03-14 21:33:34 · 256 阅读 · 0 评论 -
SpringMVC 集成 mybatisPlus 分析
文章目录1. pom 依赖替换2. 扫描包3. pom 依赖替换4. dao层接口继承 extends BaseMapper1. pom 依赖替换mybatis依赖 <properties> <org.mybatis.version>3.4.1</org.mybatis.version> <org.mybatis.sp...原创 2020-03-14 21:02:43 · 458 阅读 · 0 评论 -
SpringMVC 集成 mybatisPlus
文章目录一、基础配置1. pom一、基础配置1. pom<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0....原创 2020-03-14 20:51:50 · 1373 阅读 · 0 评论 -
mybatis-plus的 mapper.xml 路径配置的坑
mybatis-plus今天遇到一个问题,就是mybatis 没有读取到mapper.xml 文件。#实体扫描,多个package用逗号或者分号分隔mybatis-plus: typeAliasesPackage: com.gblfy.springboot.mybatisplus.entity mapper-locations: - classpath*:com/gblfy/s...原创 2020-03-14 17:35:57 · 8461 阅读 · 2 评论 -
MyBatis-Plus_通用service
9原创 2019-06-23 15:57:51 · 1551 阅读 · 0 评论 -
MyBatis-Plus_AR 模式
4原创 2019-06-23 15:54:13 · 713 阅读 · 0 评论 -
MyBatis-Plus_删除操作
1原创 2019-06-23 15:48:28 · 3036 阅读 · 0 评论 -
MyBatis-Plus_更新操作
3原创 2019-06-23 15:47:08 · 9158 阅读 · 1 评论 -
MyBatis-Plus_分页查询
查询专栏:myabtis 实现的分页为什么还要分页插件?文章目录1. 创建分页插件2. 测试分页3. 自定义分页4. 测试自定义分页方法5. 控制台输出6. 多表操作1. 创建分页插件@Configurationpublic class MybatisPlusConfig { @Bean public PaginationInterceptor paginationI...原创 2019-06-23 15:44:38 · 64118 阅读 · 13 评论 -
MyBatis-Plus_自定义sql
查询专栏:自定义查询sql文章目录1. 在mapper接口中定义接口2. 在xml文件中书写sql3. 全局配置3.1 配置xml的位置3.2 配置实体类的位置4. 在实体类中测试5. 控制台输出1. 在mapper接口中定义接口/** * 查询所有 有条件会自动拼接在where 后边当条件 单表操作 * * @param wrapper * @...原创 2019-06-23 15:35:58 · 7542 阅读 · 8 评论 -
MyBatis-Plus_LambdaQueryWrapper
查询专栏:建议使用LambdaQueryWrapper,防误写/** * 这样写的好处防误写 */ @Test public void selectLambda() {// LambdaQueryWrapper<User> lambda = new QueryWrapper<User>().lambda();// L...原创 2019-06-23 15:28:11 · 19698 阅读 · 6 评论 -
MyBatis-Plus_查询返回实体对象还是map?
在常见场景下:返回数据建议使用map,不建议使用实体对象 /** * 1. 名字包含雨并且年龄小于40 * sql:name like '%雨%' and age < 40 * <p> * 应用场景: * 当表字段非常多,但是你只需要查询少数几列, * 没必要返回的泛型为实体的list,如果返回的泛型为实体,...原创 2019-06-23 15:24:47 · 13036 阅读 · 3 评论 -
MyBatis-Plus_实体作为条件构造器构造方法的参数
查询专栏:MP默认查询原则查询的是数据库列名非实体类属性。实体作为条件构造器构造方法的参数文章目录/** * 1.传递的参数如果是实体类 * <p> * 注:这种情况传递过来的参数是等值的也就是= * 如果不想等值,例如:like '条件' * 在实体类中,需要处理属性的上面添加@TableField(condition =...原创 2019-06-23 15:19:41 · 3492 阅读 · 0 评论 -
MyBatis-Plus_Condition作用
查询专栏:MP默认查询原则查询的是数据库列名非实体类属性文章目录在测试类中新增一个私有方法 /** * 当点击查询按钮时,查询搜索框中默认为null,也支持传入条件 *当传入的条件不为null或者不为空""时,会拼接在where 的后边当做条件 * @param name * @param email */ private...原创 2019-06-23 15:14:29 · 4438 阅读 · 1 评论 -
MyBatis-Plus_查询进阶05
查询专栏:select语句中不列出全部字段文章目录1. 第一种形式2. 第二种形式1. 第一种形式通过queryWrapper调用select方法,在select方法中添加需要查询的列/** * 1. 名字包含雨并且年齡小于40 * sql:name like '%雨%' and age < 40 */ @Test public ...原创 2019-06-23 15:06:55 · 245 阅读 · 0 评论 -
MyBatis-Plus_查询进阶01
8原创 2019-06-22 19:57:56 · 198 阅读 · 0 评论 -
MyBatisPlus_删除篇_入门试炼_04
2原创 2019-06-22 19:53:30 · 1503 阅读 · 0 评论 -
MyBatisPlus_更新篇_入门试炼_03
7原创 2019-06-22 19:48:05 · 203 阅读 · 0 评论 -
MyBatisPlus_AR篇_入门试炼_06
查询专栏:MP默认查询原则查询的是数据库列名非实体类属性。第二阶段文章目录一、需求实战1.1 实战011.1 实战021.3 实战031.4 实战04一、需求实战1.1 实战01 /** * 1. 名字包含雨并且年龄小于40 * sql:name like '%雨%' and age < 40 */ @Test publi...原创 2019-06-22 19:43:55 · 226 阅读 · 0 评论 -
MyBatis-Plus_断言
文章目录1. 断言代码:2. 源码:3. 释义:4. 举个栗子:5. 异常信息:6. 控制台输出定位7. 查看数据库:1. 断言代码:Assert.assertEquals(5, userList.size());2. 源码:static public void assertEquals(long expected, long actual) { assertEquals...原创 2019-06-22 10:32:36 · 935 阅读 · 0 评论