Mybatis

mybatis拦截器实现数据权限

前端的菜单和按钮权限都可以通过配置来实现,但很多时候,后台查询数据库数据的权限需要通过手动添加SQL来实现。 比如员工打卡记录表,有id,name,dpt_id,company_id等字段,后两个表示部门ID和分公司ID。 查看员工打卡记录SQL为:`select id,name,dpt_id,co ... »

eryuan

Mybatis的parameterType造成线程阻塞问题分析

最近在新发布某个项目上线时,每次重启都会收到机器的 CPU 使用率告警,查看对应监控,持续时长达 5 分钟,对于服务重启有很大风险。而该项目有非常多 Consumer 消费,服务启动后会有大量线程去拉取消息处理逻辑,通过多次 Jstack 输出线程快照发现有很多 BLOCKED 状态线程,此文主要记... ... »

jingdongkeji

spring-boot集成mybatis真的很简单吗?

在日常的后端开发中,使用mybatis作为DAO层的持久框架已经是惯例。但很多时候都是在别人搭好的框架中进行开发,对怎么搭建环境是一知半解,今天就来实践下。 一、集成分哪些步骤 来看下集成mybatis需要哪些步骤, 1、确定环境及依赖 2、配置文件; 3、测试 二、环境及依赖 这里,基于sprin ... »

使用Mybatis-Plus问题解答

我们使用一个新的框架难免会遇到各种问题,当然使用这款国产的优秀的Mybatis-Plus框架也不例外,下面我就给大家列举一下使用Mybatis-Plus可能遇到的一些问题,并做一下一一的解答。 1:如何排除非表的字段(这个问题一定要注意,我们Java中写的Entity类的属性是和表的字段一一对应的, ... »

案例分享-被*队友的mybatis蠢哭的一天

昨晚加班的时候被队友拉着看一个mybatis的问题,耗费了我一个小时时间,最后差点没被我打死,实在是觉得滑稽,今天回家写下来跟大伙分享一下。 问题现象 Invalid bound statement (not found),看到这个错我当时就没兴趣了,我说你这不就是xml里没写xxxMapper.j ... »

最全面的Mybatis面试八股文

## Mybatis是什么? - MyBatis框架是一个开源的数据持久层框架。 - 它的内部封装了通过JDBC访问数据库的操作,支持普通的SQL查询、存储过程和高级映射,几乎消除了所有的JDBC代码和参数的手工设置以及结果集的检索。 - MyBatis作为持久层框架,其主要思想是将程序中的大量SQ ... »

tyson03

聊聊Mybatis的实现原理

### 使用示例 平时我们使用的一般是集成了Spring或是Spring Boot的Mybatis,封装了一层,看源码不直接;如下,看看原生的Mybatis使用示例 ![image](https://img2023.cnblogs.com/blog/971683/202305/971683-2023 ... »

zhiyong-ITNote

MyBatis 在大数据量下使用流式查询进行数据同步

通常的数据同步中,如果数据量比较少的话可以直接全量同步,默认情况下,完整的检索结果集会将其存储在内存中。在大多数情况下,这是最有效的操作方式,并且由于 MySQL 网络协议的设计,因此更易于实现。但是如果数据量很大的话,全量同步需要大量的内存,如果内存不足的话则可能会导致内存溢出。 通常的会采用分页 ... »

fhey

Mybatis查询

## 查询 ## 查询的数据为单条实体类 使用实体类进行接受即可,或者使用list,map接口均可.后面两者比较浪费 1. 使用实体类接受 mapper接口: ```java User selectUserById(int userid); ``` 映射文件:使用实体类 ```xml ``` 2. ... »

cyqf

mybatis集成到spring的方式详解

目录 1 前言 1.1 集成spring前使用mybatis的方式 1.2 集成mybatis到spring的关键步骤 2 SqlSessionFactoryBean对象分析 2.1 buildSqlSessionFactory做了什么事情? 2.2 为什么是SqlSessionFactor »

Mybatis操作多数据源的实现

目录 1. 注入多数据源 2. 动态数据源 (1) 创建并注入动态数据源 (2) Mybatis配置类 (3) 使用注解简化数据源切换 3. 结语 现在有一个Mysql数据源和一个Postgresql数据源,使用Mybatis对两个数据源进行操作: 1. 注入多数据源 可以对两个数 »

Mybatis-Plus多表关联查询的使用案例解析

目录 项目的目录结构: 有以下四个包: 有表结构如下:  首先配置pom.xml配置文件 1.pojo包中有dept和emp两个实例类 2.在Emp的mapper映射文件(.xml)中的mapper之间添加如下代码 3.在Dept的mapper映射文件(.xml)中的mapper之间添加如下 »

MyBatis 动态SQL使用及原理

目录 引言 1. 动态SQL概述 2. if标签 3. choose、when和otherwise标签 4. trim标签 5. set标签和where标签 6. foreach 7. bind 8. 动态SQL解析原理 9. 总结 引言 MyBatis 是一个优秀的持久层框架,它提供了丰 »

一文搞懂 MyBatis的事务管理机制

目录 一、事务概述 二、MyBatis 实现事务的方式 1. 编程式事务 2. 声明式事务 (1)JDBC 事务管理器 (2)Spring 事务管理器 三、事务源码理解 (1)TransactionFactory (2)JdbcTransaction (3)ManagedTransactio »

mybatis之BaseTypeHandler怎么使用

本篇内容主要讲解“mybatis之BaseTypeHandler怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“mybatis之BaseTypeHandler怎么使用”吧! BaseTypeHandler用法 BaseTypeHandler 是个 »

详解Mybatis中javaType和ofType的区别

目录 一. 背景描述 二. 情景再现 1. 实体类 2.BookMapper.xml映射文件 3. 核心配置 4. 测试代码 5. 修改实体类 6. 添加映射文件BookTypeMapper.xml 7. 编写测试类 三. 异常分析 四. 解析 五. 结尾 一. 背景描述 今天 »

MyBatis动态标签的使用

目录 前言 正文 一. if标签判断字符串 二. if标签判断数字 总结 前言 MyBatis中的<if>动态SQL标签,常用场景是根据条件添加WHERE子句。本篇文章将对<if>动态SQL标签使用中的常见问题进行演示和总结。 演示的场景有:if判断字符串, »