Mybatis
文章平均质量分 93
i路人甲i
这个作者很懒,什么都没留下…
展开
-
mybatis之StatementHandler
StatementHandler接口是MyBatis核心接口之一,它完成了MyBatis最核心的工作。 StatementHandler接口中的功能很多,例如创建Statement对象,为SQL语句绑定实参,执行select、insert、update、delete等多种类型的SQL语句,批量执行SQL语句,将结果集映射成结果对象。 StatementHandler接口的定义如下: public interface StatementHandler { // 从连接中获取一个Statement S原创 2020-06-14 21:05:46 · 995 阅读 · 0 评论 -
mybatis之SqlSession
.SqlSession DefaultSqlSession核心字段的含义如下: // 配置对象 private final Configuration configuration; // 底层依赖的Executor对象 private final Executor executor; // 是否自动提交事务 private final boolean autoCommit; // 当前缓存是否有脏数据 private boolean dirty; // 为防止用户忘记关闭原创 2020-06-14 21:05:01 · 3120 阅读 · 0 评论 -
mybatis之Executor
Executor是MyBatis的核心接口之一,其中定义了数据库操作的基本方法。在实际应用中经常涉及的SqlSession接口的功能,都是基于Executor接口实现的。Executor接口中定义的方法如下: public interface Executor { ResultHandler NO_RESULT_HANDLER = null; // 执行insert、update、delete等操作 int update(MappedStatement ms, Object paramete原创 2020-06-14 21:03:56 · 373 阅读 · 0 评论 -
mybatis之SQLNode&SqlSource
SqlNode&SqlSource 1.DynamicContext DynamicContext主要用于记录解析动态SQL语句之后产生的SQL语句片段,可以认为它是一个用于记录动态SQL语句解析结果的容器。DynamicContext中核心字段 含义如下: // 参数上下文 private final ContextMap bindings; // 在SqlNode解析动态SQL时,会将解析后的SQL片段添加到该属性中保存,最终拼凑出一条完成的SQL语句 private final原创 2020-05-18 00:57:39 · 644 阅读 · 0 评论 -
MyBatis初始化(二)之XMLConfigBuilder
XMLConfigBuilder XMLConfigBuilder是BaseBuilder的众多子类之一,它扮演的是具体建造者的角色。XMLConfigBuilder 要负责解析mybatis-config.xml 配置文件,其核心字段如下: // 标识过是否解析过mybatis-config.xml配置文件 private boolean parsed; // 用于解析mybat...原创 2020-04-19 19:09:16 · 879 阅读 · 0 评论 -
MyBatis初始化(一)之BaseBuilder
BaseBuilder MyBatis的初始化的主要工作是加载并解析mybatis-config.xml配置文件、映射文件以及相关的注解信息。Mybatis的初始化入口是SqlSessionFactoryBuilder.build()方法,其具体实现是: public SqlSessionFactory build(InputStream inputStream, String environme...原创 2020-04-19 19:07:58 · 840 阅读 · 0 评论 -
Mybatis Plugin插件设计应用
一、mybatis自定义拦截器实现步骤 实现**org.apache.ibatis.plugin.Interceptor**接口 添加Intercepts注解。 在XML配置文件或配置对象中添加拦截器。 二、利用自定义拦截器实现数据库备份 创建拦截器,并编写相应的逻辑 @Slf4j //添加Intercepts注解。 @Intercepts({ @Signature(type = Execut...原创 2020-04-07 00:39:20 · 216 阅读 · 0 评论 -
Mybatis Plugin插件设计原理
一、背景 在很多业务场景下我们需要去拦截sql,达到不入侵原有代码业务处理一些东西,比如:历史记录、分页操作,数据权限过滤操作,SQL执行时间性能监控等等,这里我们就可以用到Mybatis的插件Plugin。 二、Mybatis核心对象介绍 从MyBatis代码实现的角度来看,MyBatis的主要的核心部件有以下几个: Configuration:初始化基础配置,比如MyBatis的别名等,一些...原创 2020-04-03 10:20:58 · 170 阅读 · 0 评论