Springboot自定义mybatis拦截器实现扩展
前言
相信大家对拦截器并不陌生,对mybatis也不陌生。
有用过pagehelper的,那么对mybatis拦截器也不陌生了,按照使用的规则触发sql拦截,帮我们自动添加分页参数 。
那么今天,我们的实践 自定义mybatis拦截器也是如此, 本篇文章实践的效果:
针对一些使用 单...[2021/12/31]
一篇文章弄懂Mybatis中#和$的区别
目录前言一:下面我们写个关于“#”的个sql,看能不能注入。1.正常传参2.拼接传参二:下面我们写个关于“$”的个sql,看能不能注入。1.正常传参2.拼接传参总结 前言
在学校的时候,想必大家肯定听老师讲过,在mybatis中,配置参数要用#,不要用$符号。因为$不安全,容易被sql注入。讲是...[2021/12/20]
浅谈mybatisPlus的Ipage分页和map参数的问题
目录mybatisPlus的Ipage分页和map参数第一种情况第二种情况mybatisPlus IPage分页常见问题(坑)1.TooManyResultsException mybatisPlus的Ipage分页和map参数
前提:先有一个map类型的参数
Map params=...[2021/12/20]
MyBatis 多个条件使用Map传递参数进行批量删除方式
目录多个条件使用Map传递参数进行批量删除1、使用场景2、代码实现3、实现结果展现MyBatis 多条件批量删除的sql语句我把这次的代码贴出来,仅供参考 多个条件使用Map传递参数进行批量删除
1、使用场景
因为项目需要针对资源文件(视频、音频、文档),编辑时候可能出现以下3种情况:
...[2021/12/20]
mybatis关于Criteria使用的小坑
目录关于Criteria使用的小坑关于Criteria使用的注意点 关于Criteria使用的小坑
在用Criteria时,相关代码如下:
final RolePermi ionExample example = new RolePermi ionExample();
...[2021/12/15]
MyBatis?Generator生成的$?sql是否存在注入风险详解
目录代理商sql注入问题排查准备测试demoentityProduct.javaProductExample.java控制层ProductController.javaservice层ProductService.javaProductServiceImpl.javamapperProductCon...[2021/12/15]
Mybatis重置Criteria的正确姿势分享
目录Mybatis重置Criteria发现问题原因如下我们想重置查询条件怎么办?得出一个结论Mybatis的Criteria用法总结 Mybatis重置Criteria
开发中遇到Mybatis生成的Example通过调用createCriteria()来创建Criteria并设置查询条件的情况...[2021/12/15]
Mybatis如何自动生成sql语句
目录Mybatis自动生成sql语句Mybatis的动态sql语句if标签的使用where标签的使用foreach标签的使用sql语句的简化编写 Mybatis自动生成sql语句
创建maven项目,将该配置文件运行即可生成 sql 语句
<?xml version="...[2021/12/15]
Springboot Mybatis Plus自动生成工具类详解代码
前言
代码生成器,也叫逆向工程,是根据数据库里的表结构,自动生成对应的实体类、映射文件和接口。
看到很多小伙伴在为数据库生成实体类发愁,现分享给大家,提高开发效率。
一、pom依赖
<dependency>
<groupId>c...[2021/11/24]
Fluent Mybatis学习之Update语法实践
目录前言数据准备Update语法简单的写法UpdateByEntity根据表实体更新数据UpdateByExclude根据表实体排除更新数据applyFunc总结 前言
本篇文章主要针对update语法进行验证。
本项目Github地址:项目仓库
数据准备
还是用之前在数据库存的数据...[2021/11/24]
关于Mybatis使用collection分页问题
目录原因方案方案一方案二扩展1.集合的嵌套 Select 查询2.集合的嵌套结果映射参考: 项目中mybatis分页的场景是非常高频的,当使用ResultMap并配置collection做分页的时候,我们可能会遇到获取当前页的数据少于每页大小的数据问题。使用PagerHelper插件同样会遇到该问题...[2021/11/23]
springboot集成mybatis官方生成器springboot集成mybatis官方生成器
目录引入习惯pluginresource下插件代码生成器配置添加maven命令新建一张数据库表进行测试 点击运行 引入习惯plugin
<!-- mybatis generator 自动生成代码插件 -->
<plugin>
<groupI...[2021/11/22]
mybatis/mybatis-plus模糊查询语句特殊字符转义拦截器的实现
目录1.使用mybatis提供的拦截器拦截所有的查询请求。
2.定义SQL语句转义模板,分别对Map和Object对象进行处理
mybati mybatis-plus模糊查询语句特殊字符转义拦截器
在开发中,我们通常会遇到这样的情况。用户在录入信息是录入了‘%'',而在查询时无法精确匹配‘%'...[2021/11/9]
MyBatis-Plus实现字段自动填充功能的示例
目录一、前言二、实现1. 实体类2. 公用字段 - 使用注解填充字段3. 自定义MyMetaObjectHandler字段自动填充处理类继承MetaObjectHandler 一、前言
在项目中,我们有一些公共的字段需要做修改
如:
gmt_create:创建时间
...[2021/11/9]
Mybatis-Plus自动填充更新操作相关字段的实现
目录场景介绍
自动填充处理器
Mybatis-Plus配置类
配置实体类中相关字段的自动填充策略
在阿里开发手册的建表规约中有说明,数据库表中应该都要有create_time、update_time字段;那么在开发中,对于这些共有字段的处理应该要进行统一,这样就可以简化我们的开发过程。那么本文就对...[2021/11/9]
详解MybatisPlus3.4版本之后分页插件的使用详解MybatisPlus3.4版本之后分页插件的使用
目录一、MybatisPlusInterceptor
二、旧版分页插件配置方法(Mybatis Plus 3.4.0版本之前)
三、新的分页插件配置方法(Mybatis Plus 3.4.0版本及其之后的版本)
四、分页查询的使用方法
一、MybatisPlusInterceptor
从M...[2021/11/9]
Mybatis-plus支持Gbase8s分页的实现示例
目录需求实现方法法2实现20210423 修改完善20210519完善20210528完善 需求
实现mybatis-plus对gbase8s的分页效果支持,使切换数据库(如oracle/mysql/gbase8s)时同样分页插件代码一样实现分页效果。
mybatis-plus版本:3....[2021/11/9]
Mybatis-plus 批量插入太慢的问题解决(提升插入性能)
MyBatis-Plus(简称MP)是一个MyBatis的增强工具,旨在MyBatis的基础上只做增强不做改变,为简化开发、提高效率而生。
特点
无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑
损耗小:启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作
...[2021/11/9]
MyBatis中map的应用与模糊查询实现代码
目录1.MyBatis中map的应用1.1.应用场景1.2.具体实现1.3.注意点!!!2.模糊查询 1.MyBatis中map的应用
1.1.应用场景
假设,实体类,或者数据库中的表,字段或者参数过多,应当考虑使用Map!!!
1.2.具体实现
万能map
int ad...[2021/11/8]
Mybatis如何使用@Mapper和@MapperScan注解实现映射关系
目录使用@Mapper和@MapperScan注解实现映射关系Mybatis-@MapperScan和mybatis:scan分析<mybatis:scan>MapperScan 使用@Mapper和@MapperScan注解实现映射关系
MyBatis与Spring整合后需要实现实...[2021/10/8]
spring boot下mybatis配置双数据源的实例spring boot下mybatis配置双数据源的实例
目录单一数据源配置多个数据源配置多数据源配置文件多数据源配置类 最近项目上遇到需要双数据源的来实现需求,并且需要基于spring boot,mybatis的方式来实现,在此做简单记录。
单一数据源配置
单一数据源配置的话并没有什么特别的,在spring boot框架下,只需要在配置文件内添加...[2021/9/28]
Mybatis Generator Plugin悲观锁实现示例
目录前言
实现背景:
实现Mybatis悲观锁
完整代码
前言
Mybatis Generator插件可以快速的实现基础的数据库CRUD操作,它同时支持JAVA语言和Kotlin语言,将程序员从重复的Mapper和Dao层代码编写中释放出来。Mybatis Generator可以自动生成大...[2021/9/28]
浅谈Mybatis之参数传递的几种姿势浅谈Mybatis之参数传递的几种姿势
目录I. 环境配置
1. 项目配置2. 数据库表
II. 参数传递
1. @Param注解
2. 单参数
3. 多参数
3. Map传参
4. POJO对象
5. 简单参数 + Map参数
6.小结
III. 不能错过的源码和相关知识点
在mybatis的日常开发中,mapper接口中定义的参数如...[2021/9/27]
一文了解MyBatis Plus批量数据插入功能
目录前言批量插入实现方案
1.引入 MP 框架
2.创建数据库和表
3.具体代码实现(重点)
总结
前言
最近 Review 小伙伴代码的时候,发现了一个小小的问题,小伙伴竟然在 for 循环中进行了 insert (插入)数据库的操作,这就会导致每次循环时都会进行连接、插入、断开连接的操作,...[2021/9/27]
SpringBoot+Mybatis实现Mapper接口与Sql绑定几种姿势
目录I. 环境准备
1. 数据库准备
2. 项目环境
II. 实例演示
1. 实体类,Mapper接口
2. sql文件
3. Mapper与Sql绑定
3.1 默认方式
3.2 SpringBoot配置
3.3 Mapper标签
3.4 SqlSe ionFactory
4. 小结
III. 不能...[2021/9/27]
mybatis-plus自动填充插入更新时间有8小时时差
今天使用mybatis-plus自动填充插入和更新时间有8小时时差
后来发现只需要修改一下mybaits连接的url即可
原先我是用的
datasource:
driver-cla -name: com.mysql.cj.jdbc.D...[2021/9/27]
Mybatis使用@one和@Many实现一对一及一对多关联查询Mybatis使用@one和@Many实现一对一及一对多关联查询
目录一、准备工作1.创建springboot项目,项目结构如下2.添加pom.xml配置信息3.配置相关信息二、使用@One注解实现一对一关联查询三、使用@Many注解实现一对多关联查询四、FetchType.LAZY 和 FetchType.EAGER的区别 一、准备工作
1.创建spring...[2021/9/22]
Java之mybatis使用limit实现分页案例讲解
1. Limit实现分页
1.1 为什么需要分页
减少数据的处理量
1.2 使用Limit实现分页
select * from user limit startIndex,pageSize; # 注意是从startIndex+1开始查询 pageSize 个
select ...[2021/8/5]
oracle+mybatis-plus+springboot实现分页查询的实例
今天蠢了一上午才弄出这玩意,话不多说上代码!
1、建一个配置类
package com.sie.demo.config;
import com.baomidou.mybatisplus.annotation.DbType;
import com.baomidou.mybat...[2021/8/5]
springboot+mybatis-plus+oracle实现逻辑删除
最近在做一个前后端分离的小项目,需要删除用户表的用户,但是用户再别的表做了外键,所以只能做成逻辑删除,一通百度查资料后得以实现:
1、用户实体类
package com.sie.demo.entity;
import com.alibaba.fastjson.annotat...[2021/8/5]
MyBatis-Plus结合Layui实现分页方法
MyBatis-Plus 使用简单,内置通用 Mapper、通用 Service,仅仅通过少量配置,即可实现单表大部分 CRUD 操作。下面介绍使用 service 中的 page 方法结合 Layui 前端框架,较快速的实现分页效果。
在 pom.xml 中引入依赖
<...[2021/8/5]
springboot 整合fluent mybatis的过程,看这篇够了springboot 整合fluent mybatis的过程,看这篇够了
1.导入pom依赖
<!-- mybatis-->
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
...[2021/8/4]
Fluent Mybatis实际开发中的优势对比
之前文章介绍过了Fluent基本框架等,其中有几个重要的方法用到了IQuery和IUpdate对象。 这2个对象是FluentMybatis实现复杂和动态sql的构造类,通过这2个对象fluent mybatis可以不用写具体的xml文件, 直接通过java api可以构造出比较复杂的业务sql语...[2021/8/4]
FluentMybatis实现mybatis动态sql拼装和fluent api语法
目录开始第一个例子: Hello World新建演示用的数据库结构创建数据库表对应的Entity类运行测试来见证Fluent Mybatis的神奇配置spring bean定义使用Junit4和Spring-test来执行测试 开始第一个例子: Hello World
新建Java工...[2021/8/4]
Fluent Mybatis让你摆脱Xml文件的技巧
目录一、啥是Fluent-Mybatis二、SpringBoot + Fluent-Mybatis三、官方链接 一、啥是Fluent-Mybatis
与Mybatis-Plus类似,是对Mybaits进一步的封装,使之语法简洁明了,更重要的是不需要在自主创建Xml文件,可以只用一个实体类对象,通...[2021/8/4]
Fluent Mybatis如何做到代码逻辑和sql逻辑的合一
使用fluent mybatis可以不用写具体的xml文件,通过java api可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一。不再需要在Dao中组装查询或更新操作,在xml或mapper中再组装参数。那对比原生Mybatis, Mybatis Plus或者其他框架,Fluen...[2021/8/4]
Fluent Mybatis零xml配置实现复杂嵌套查询
目录嵌套查询in (select 子查询)exists (select子查询) 嵌套查询
使用Fluent Mybatis, 不用手写一行xml文件或者Mapper文件,在dao类中即可使用java api构造中比较复杂的嵌套查询。
让dao的代码逻辑和sql逻辑合二为一。
前置准备,ma...[2021/8/4]
Fluent Mybatis快速入门详细教程
使用fluent mybatis可以不用写具体的xml文件,通过java api可以构造出比较复杂的业务sql语句,做到代码逻辑和sql逻辑的合一。 不再需要在Dao中组装查询或更新操作,在xml或mapper中再组装参数。喜欢的朋友可以阅读这篇文章 http: www.j...[2021/8/4]
Fluent MyBatis实现动态SQLFluent MyBatis实现动态SQL
目录数据准备
代码生成
在 WHERE 条件中使用动态条件
在 UPDATE 使用动态更新
choose 标签
参考
MyBatis 令人喜欢的一大特性就是动态 SQL。在使用 JDBC 的过程中, 根据条件进行 SQL 的拼接是很麻烦且很容易出错的,
MyBatis虽然提供了动态拼装的能力,但...[2021/8/4]
mybatis3中@SelectProvider传递参数方式mybatis3中@SelectProvider传递参数方式
mybatis3 @SelectProvider传递参数
一、通常情况下我喜欢使用实体或者vo去传参数
这样在Provide的方法中可以直接通过#{param}(param为你实体中的字段)来获取你要的参数。
二、使用map传参数
在超过一个参数的情况下,@SelectProvide方法...[2021/8/4]
mybatis中注解与xml配置的对应关系和对比分析
注解与xml配置的对应关系
mybatis中注解就是简单不需要写配置文件,适合简单的数据处理,理解起来比较容易,不动态生成SQL时候可以用用。
需要绑定,有些时候不如配置文件,配置文件扩展强。 选择合适的方式应用在合适的场景,注解主要应用于sql语句比较简单容易理解的情况下可读性高;生成动态...[2021/8/4]
Spring Boot mybatis-config 和 log4j 输出sql 日志的方式
依赖
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
&...[2021/7/26]
springboot+mybatis plus实现树形结构查询
目录背景
使用场景
设计思路
递归模型
实现代码
注意事项
总结
背景
实际开发过程中经常需要查询节点树,根据指定节点获取子节点列表,以下记录了获取节点树的操作,以备不时之需。
使用场景
可以用于系统部门组织机构、商品分类、城市关系等带有层级关系的数据结构;
设计思路
...[2021/7/21]
Java经典面试题汇总:Mybatis
目录1. MyBatis 中 #{}和 ${}的区别是什么?2. MyBatis 有几种分页方式?3. MyBatis 逻辑分页和物理分页的区别是什么?4. MyBatis 是否支持延迟加载?延迟加载的原理是什么?5. 说一下 MyBatis 的一级缓存和二级缓存?6. MyBatis 有哪些执行器...[2021/7/21]
Mybatis查找返回Map,List集合类型的数据方式Mybatis查找返回Map,List集合类型的数据方式
Mybatis查找返回Map,List集合类型的数据
一、查找返回Bean对象的List集合
基本与返回Bean对象没什么区别,resultType依然为Bean对象的全类名,只是接口中的方法类型要进行修改
public List<Employee> getEmpLis...[2021/7/19]
解析Mybatis SqlSessionFactory初始化原理
目录引言
SqlSe ionFactory
不使用 XML 构建 SqlSe ionFactory
SqlSe ionFactoryBuilder
拓展
引言
现在内卷越来越严重,关于常用的ORM框架Mybatis,小编准备了三篇文章,分别将介绍SqlSe ionFactory初始化原理、...[2021/7/12]
浅谈Mybatis SqlSession执行流程
目录Mybatis执行SQL流程
SqlSe ionExecutorMybatis之Executor
Mybatis之StatementHandler
进入ResultSetHandler Mybatis执行SQL流程
在看源码之前,我们需要了解一些基本知识,如果您没有阅读Mybatis S...[2021/7/12]
Spring整合Mybatis的全过程
1.Spring配置文件
1.1配置数据库连接池
<!--读取文件-->
<util:properties id="config" location="cla path:Config/db.properties"/>
<!--配置数据...[2021/6/28]
Mybatis的TypeHandler加解密数据实现Mybatis的TypeHandler加解密数据实现
一、背景
在我们数据库中有些时候会保存一些用户的敏感信息,比如: 手机号、银行卡等信息,如果这些信息以明文的方式保存,那么是不安全的。假如: 黑客黑进了数据库,或者离职人员导出了数据,那么就可能导致这些敏感数据的泄漏。因此我们就需要找到一种方法来解决这个问题。
二、解决方案
由于我...[2021/6/28]
Mybatis结果集映射一对多简单入门教程
Mybatis 一对多 简单入门 易懂
搭建数据库环境
student 表
DROP TABLE IF EXISTS `student_2`;
CREATE TABLE `student_2` (
`id` int(10) NOT NULL,
`name` va...[2021/6/21]