MyBatis
文章平均质量分 79
肥龙上天
我暂时还不想告诉你...
展开
-
终结篇 MyBatis 解析 (二)-- 主要构件
从MyBatis代码实现的角度来看,MyBatis的主要的核心部件有以下几个: SqlSession:作为MyBatis工作的主要顶层API,表示和数据库交互的会话,完成必要数据库增删改查功能; Executor:MyBatis执行器,是MyBatis 调度的核心,负责SQL语句的生成和查询缓存的维护; StatementHandler:封装了JDBC Statemen...原创 2018-03-30 17:57:29 · 274 阅读 · 0 评论 -
模拟MyBatis源码-V2.0
前一版太过于简单, 这个版本依照源码格式创建config,executor,handler,mappedstatement, 整个项目结构如下: 本项目模拟了MyBatis的几个主要大类: SqlSession, Configuration, Executor, MapperProxy, MappedStatement, ResultSetHandler ,StatementHandler...原创 2018-04-03 17:44:17 · 245 阅读 · 0 评论 -
MyBatis与Spring集成
myBatis与Spring集成时,xml版的配置文件配置如下: <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instan...原创 2018-04-10 11:12:58 · 134 阅读 · 0 评论 -
myBatis缓存日志 --SqlSessionTemplate 缓存使用
1. 一级缓存默认是开启的, MyBatis 默认开启了一级缓存,一级缓存是在SqlSession 层面进行缓存的。即,同一个SqlSession ,多次调用同一个Mapper和同一个方法的同一个参数,只会进行一次数据库查询,然后把数据缓存到缓冲中,以后直接先从缓存中取出数据,不会直接去查数据库。 但是不同的SqlSession对象,因为不用的SqlSession都是相互隔离的,所以相...原创 2018-04-15 11:15:26 · 1643 阅读 · 0 评论 -
模拟MyBatis源码- V1.0
模拟myBatis源码的类结构 自己手动实现MyBatis源码: 第一步, 生命一个SqlSession, SqlSession两大主要组件, Configuration, Executor., 其中Configuraion保存了所有配置信息如: Mapper,DataSource, Trancation等, 这次 v1.0版只编写最简单的Mapper信息 模拟SqlSession代...原创 2018-04-02 11:21:57 · 242 阅读 · 0 评论 -
终结篇 MyBatis 解析 (三)-- 初始化机制
任何框架的初始化,无非是加载自己运行时所需要的配置信息。MyBatis的配置信息,大概包含以下信息,其高层级结构如下: MyBatis采用了一个非常直白和简单的方式—使用 org.apache.ibatis.session.Configuration对象作为一个所有配置信息的容器,Configuration对象的组织结构和XML配置文件的组织结构几乎完全一样(当然,Configuration...原创 2018-03-30 18:07:27 · 209 阅读 · 0 评论 -
终结篇 MyBatis原理统一解析 (一)
1. JDBC实现过程 我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤: 加载JDBC驱动; 建立并获取数据库连接; 创建 JDBC Statements 对象; 设置SQL语句的传入参数; 执行SQL语句并获得查询结果; 对查询结果进行转换处理并将处理结果返回; 释放相关资源(关闭Connection,关闭Statement,关闭ResultSet); ...原创 2018-03-29 17:54:34 · 291 阅读 · 0 评论 -
MyBatis Plugin 解析
Mybatis的拦截器是通过jdk的动态代理实现的。 Mybatis中的拦截器中几个关键的类: Interceptor : 所有插件都要实现这个接口。 public interface Interceptor { //插件被命中时,调用此方法 Object intercept(Invocation var1) throws Throwable; //对用户自己...原创 2018-04-01 12:38:38 · 420 阅读 · 0 评论 -
MyBaits源码解析主要知识汇总
Configuration组成 configuration的属性主要分为两大部分 从mybatis-config.xml中读取的配置 从mapper配置文件或Mapper注解读取的配置 主要对象 //与XML配置文件对应的对象 protected Environment environment; protected boolean cacheEnabled ...原创 2018-03-31 19:48:32 · 238 阅读 · 0 评论 -
终结篇 MyBatis 解析 (四)-- Sql 执行过程
SqlSession有一个默认的实现DefaultSqlSession, 在DefaultSqlSession中有一个Executor对象,对象数据的操作都是由这个Executor来完成。Executor中有三个对象来帮助他完成MappedStatement的执行工作。 StatementHandler负责从连接中获取一个Statement对象 ParameterHandler负责对...原创 2018-03-30 22:15:56 · 195 阅读 · 0 评论 -
MyBatis 中 MapperScannerConfigurer分析
myBatis源码学了一段时间, 突然对接口的Mapper类怎么变成FactoryBean注入到项目中很好奇, 找时间研究了下, 做个总结. 在以前的分析代码中, 手动调用Mapper访问数据的过程如下; IUserMapper mapper = session.GetMapper(IUserMapper.class); UserBean bean = mapper.selectByP...原创 2018-04-27 14:12:49 · 345 阅读 · 0 评论