Mybatis
chengbinbbs
这个作者很懒,什么都没留下…
展开
-
MyBatis 插件之拦截器Interceptor源码解析(五)
MyBatis 插件之拦截器(Interceptor)一.背景 拦截器的一个作用就是我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。Mybatis拦截器设计的一个初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。打个比方,对于Executor,Mybatis中有几种实现:BatchExecutor、ReuseExecutor、SimpleExecutor和Ca原创 2020-05-19 17:40:45 · 987 阅读 · 0 评论 -
Mybatis中的TypeHandler源码解析(四)
无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换成 Java 类型。Mybatis默认为我们实现了许多TypeHandler, 当我们没有配置指定TypeHandler时,Mybatis会根据参数或者返回结果的不同,默认为我们选择合适的TypeHandler处理。那么,Mybatis为我们实现了哪些TypeHandler呢? 我们怎么自定义实现一个TypeHandler ? 这些都会在接下原创 2020-05-19 17:35:54 · 270 阅读 · 0 评论 -
Mybatis 缓存系统源码解析(三)
前言在使用诸如 Mybatis 这种 ORM 框架的时候,一般都会提供缓存功能,用来缓存从数据库查询到的结果,当下一次查询条件相同的时候,只需从缓存中进行查找返回即可,如果缓存中没有,再去查库;一方面是提高查询速度,另一方面是减少数据库压力;Mybatis 也提供了缓存,它分为一级缓存和二级缓存,接下来就来看看它的缓存系统是如何实现的。缓存系统的实现使用了 *模板方法模式* 和 *装饰器模式*装饰器模式在缓存模块的使用Cache:Cache 接口是缓存模块的核心接口,定义了缓存的基本操作;P原创 2020-05-19 17:32:52 · 295 阅读 · 0 评论 -
Mybatis拦截器实现数据脱敏
Mybatis拦截器实现数据脱敏利用mybatis拦截器,我们可以实现如下常见的功能:1.数据加密2.数据脱敏3.审计功能4.逻辑删除5.分页6.租户与部门隔离简介数据脱敏(保形加密)与数据加密的区别1、脱敏兼顾数据安全与数据使用,采用专业的数据脱敏算法;而加密则是通过对数据进行编码来保护数据,检索原始值的唯一方法是使用解密密钥解码数据。2、脱敏数据仍然便于使用,但加密数据不...转载 2020-05-01 17:04:58 · 4592 阅读 · 0 评论 -
MyBatis源码窥探(一):MyBatis整体架构解析
MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。1. ORM简介ORM(Object R...转载 2020-04-26 20:23:13 · 310 阅读 · 0 评论 -
MyBatis 源码解析(二):SqlSession 执行流程
上一篇文章分析了 MyBatis 解析配置文件初始化的流程,本篇主要分析一下SqlSession 具体的执行流程。MyBatis 在解析完配置文件后生成了一个 DefaultSqlSessionFactory 对象,后续执行 SQL 请求的时候都是调用其 openSession 方法获得 SqlSessison,相当于一个 SQL 会话。 SqlSession 提供了操作数据库的一些方法,如 s...原创 2020-04-26 20:17:01 · 255 阅读 · 0 评论 -
MyBatis 源码解析(一):初始化
MyBatis 源码解析(一):初始化我们接着按照上一篇中mybatis入门的例子来分析mybatis的源码:public class App { public static void main(String[] args) { try { // 1.读取mybatis配置文件 InputStream inputStre...原创 2020-04-26 20:11:39 · 224 阅读 · 0 评论 -
Mybatis入门
Mybatis入门1. ORM简介ORM(Object Relational Mapping)对象-关系映射框架,ORM的主要功能就是根据映射配置文件,完成数据在对象模型与关系模型之间的映射。1.1 常见的ORM框架1.1.1 HibernateHibernate通过hbm.xml映射文件维护一个Java类与数据库表的映射关系,通过Hibernate的映射,Java开发人员可以用看待J...原创 2020-04-26 20:06:49 · 198 阅读 · 0 评论 -
mybatis批量增删改查操作
mybatis批量增删改查操作:批量添加"batchInsert" parameterType="java.util.List"> insert into sys_users (id, username, password, salt, locked) values "list" item="item" index="index" separat原创 2018-01-31 13:58:09 · 203 阅读 · 0 评论 -
mybaits返回自增主键ID
mybaits两种获取自增主键ID的方法:一种是使用useGeneratedKeys,第二种是selectKey方法获取。useGeneratedKeys insert into sys_users (id, username, password, salt, locked) values (#{id,jdbcType=BIGINT}, #{usern原创 2018-01-31 13:40:12 · 4442 阅读 · 0 评论 -
mybatis缓存
缓存 接触过hibernate的同学都知道hibernate中有个二级缓存,mybatis也存在二级缓存。mybatis中二级缓存有什么作用呢?mybatis提供查询缓存,可以提高查询效率,减轻数据库的压力。一级缓存 一级缓存是session级别的缓存,基于PerpetualCache的HashMap本地存储,其存储作用域为Session,不能跨不同的session原创 2018-01-31 12:42:41 · 1815 阅读 · 0 评论