
MyBatis 随笔
懋为
居安思危,思则有备,有备无患,敢以此规。
展开
-
MyBatis的运行原理
平时在日常开发的时候,我们通常定义一个Mapper接口实现数据库操作,而不是一个包含逻辑的实现类。一般而言,一个接口是没有办法执行的,那MyBatis是怎么做到的呢?答案就是动态代理,关于动态代理的内容,博主在之前的博文中已经详细介绍过了,此处不再赘述。本文主要探析一下MyBatis在执行数据库操作时的运行原理。假如我们有如下的Mapper接口,主要实现对一个用户信息的增删查改操作,...原创 2018-04-14 16:46:04 · 222 阅读 · 0 评论 -
MyBatis的缓存机制
前言MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis的默认缓存配置,但是MyBatis缓存机制有一些不足之处,在使用中容易引起脏数据,形成一些潜在的隐患。一级缓存默认情况下,MyBatis只开启一级缓存。一级缓存只是相对于同一个SqlSession而言的,如果是相同的SQL语句,会优先命中一级缓存,避免直接对数据库进行查询,提高性...原创 2018-04-14 02:03:44 · 931 阅读 · 0 评论 -
MyBatis 缓存之Redis简单实现
前言MyBatis 提供的缓存机制都是基于Cache 接口而实现,因此我们也可以通过实现该接口创建自定义的缓存实现。Redis 的缓存实现简单来说,在MyBatis开启二级缓存的前提下,通过使用自定义的缓存实现类,使用Redis完成对缓存信息的查询和更新。看一下具体实现,public class RedisCache implements Cache { private s...原创 2018-05-27 13:07:27 · 3566 阅读 · 3 评论 -
MyBatis 分页插件
前言日常开发中,我们经常会碰上需要列表查询的场景,如果查询结果列表过长,则需要对其进行分页。MyBatis 其实自带分页功能,通过一个RowBounds的类实现,但是存在一个非常严重的问题,那就是它会一条SQL中查询所有的结果出来,然后根据从第几条到第几天取出数据返回。如果这条SQL返回很多数据,系统很可能内存溢出。分页插件是 MyBatis 中最为经典和常用的插件,本文就来介绍一种分页插...原创 2018-05-23 23:36:53 · 522 阅读 · 0 评论