四时宝库

程序员的知识宝库

源码分析 Mybatis 的 foreach 为什么会出现性能问题

背景

最近在做一个类似于综合报表之类的东西,需要查询所有的记录(数据库记录有限制),大概有1W条记录,该报表需要三个表的数据,也就是根据这 1W 个 ID 去执行查询三次数据库,其中,有一条查询 SQL 是自己写,其他两条是根据别人提供的接口进行查询,刚开始的时候,没有多想,直接使用 in 进行查询,使用 Mybatis 的 foreach 语句;项目中使用的是 jsonrpc 来请求数据,在测试的时候,发现老是请求不到数据,日志抛出的是 jsonrpc 超时异常,继续查看日志发现,是被阻塞在上面的三条SQL查询中。

对着源码学mybatis系列——autoMappingBehavior

一、什么是 MyBatis 自动映射?

MyBatis 自动映射是指 MyBatis 根据数据库表结构和 Java 对象的属性,自动将数据库中的列值映射到对应的 Java 对象属性上。这意味着你无需手动编写繁琐的映射语句,MyBatis 会帮你完成大部分的映射工作。

MyBatis插件原理及应用四-懒加载实现原理

MyBatis支持通过<collection>或者<association>标签关联一个外部的查询Mapper,当通过MyBatis配置开启懒加载机制时,执行查询操作不会触发关联的查询Mapper,而通过Getter方法访问实体属性时才会执行一次关联的查询Mapper,然后为实体属性赋值。本节我们就来了解MyBatis懒加载机制的实现原理。

优雅,Mybatis如何实现对敏感字段的加密处理?

背景

相信很多人都遇到过这种情况,需要在前端调用的接口中将一些敏感字段进行加密处理。一种比较Low的处理方式就是通过硬编码的方式,或者是使用显示脱敏技术进行处理,这种处理方式就显得比较臃肿了。下面我们就来介绍一种简单优雅的方式来实现数据加密处理。

详解MyBatis加载映射文件和动态代理

本篇文章将分析MyBatis在配置文件加载的过程中,如何解析映射文件中的SQL语句以及每条SQL语句如何与映射接口的方法进行关联。

还在用MyBatis 自动生成器么!DataGrip 了解一下

DataGrip

DataGrip是一款数据库客户端工具,是大名鼎鼎的JetBrains公司出品的,相信大部分程序员都用过同公司的Intellij IDEA。

DataGrip可以连接到数据库服务器,执行sql、管理表(创建表,修改索引等等)以及导出数据等。之前一直用的免费的MySQL Workbench,这个工具是免费的,能够满足日常需求,但是在Mac上经常死机,还有就是自动感应不是很灵敏。另外一个缺陷是专为MySQL设计。

mybatis源码-原来resultMap解析完是这样的

select 语句中查询得到的是一张二维表, 水平方向上看是一个个字段, 垂直方向上看是一条条记录。

作为面向对象的语言, Java 中的的对象是根据类定义创建的。 类之间的引用关系可以认为是嵌套的关系。

Java编程|Mybatis框架优点、缺点、适用场合、和Hibernate区别

SpringBoot系列——防重放与操作幂等

  前言

  日常开发中,我们可能会碰到需要进行防重放与操作幂等的业务,本文记录SpringBoot实现简单防重与幂等

Java面试常见问题:Mybatis的工作原理

ORM框架是几乎所有Java应用都会用到的技术,大多数ORM框架都是将Java对象与数据表进行关联,Mybatis则是将Java方法和SQL语句进行了映射(Mapping)。这样不仅简化了ORM操作,同时也支持数据表关联查询、视图查询、存储过程调用等比较复杂的操作。本文就来分析一下MyBatis的工作原理,这也是Java面试中经常考察的内容。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接