1. 准备工作 编写测试代码(具体请参考<Mybatis入门示例>),设置断点,以Debug模式运行,具体代码如下: )ExecutorType:执行类型,ExecutorType主要有三种类型:SIMPLE, REUSE, BATCH,默认是SIMPLE,都在枚举类ExecutorType里面. (2)TransactionIsolationLevel:事务隔离级别,都在枚举类TransactionIsolationLevel中定义. (3)autoCommit:是否自动提交,主要是事务提交…
MyBatis原理分析   参考博客: 深入理解mybatis原理: http://blog.csdn.net/luanlouis/article/details/40422941 一 . JDBC的工作流程: 加载数据库的驱动程序->创建数据连接对象->创建Statement对象->执行SQL语句->处理返回结果集->关闭数据库连接 二 . mybatis和数据库交互的方式 1 . 使用传统的mybatis提供的API:此方式创建一个SqlSession对象,根据传入的St…
对于入门程序的流程分析 使用过程 读配置文件 读取配置文件时绝对路径和相对路径(web工程部署后没有src路径)都有一定问题,实际开发中一般有两种方法 使用类加载器,它只能读取类路径的配置文件 使用SerbletContext对象的getRealPath() 创建SqlSessionFactory工厂,使用了建造者模式(Builder Pattern) 使用工厂生产SqlSession对象,使用了工厂模式(Factory Pattern) 使用SqlSession创建Dao接口的代理对象,使用了…
上回我们讲到Mybatis加载相关的配置文件进行初始化,这回我们讲一下一次SQL查询怎么进行的. 准备工作 Mybatis完成一次SQL查询需要使用的代码如下: ) { ); ) { throw new TooManyResultsException("Expected one result (or null) to be returned by selectOne(), but found: " + list.size()); } else { return null; } } 我们…
一. 介绍MyBatis初始化过程 项目是简单的Mybatis应用,编写SQL Mapper,还有编写的SqlSessionFactoryUtil里面用了Mybatis的IO包里面的Resources获取配置文件的输入流,利用SqlSessionFactoryBuilder获取创建Session的工厂. 首先构建的是承载mybatis-config配置的Configuration类,它是由SqlSessionFactoryBuilder的build开始的,时序图如下: 二.相关代码 自己编写的S…
现在企业级开发中ssm是很常见的技术标配,mybatis比hibernate轻量了很多,而且学习成本相对较低,简单易上手. 那么,问题来了,简单好用的mybatis底层到底是如何实现的呢?都使用了什么原理呢? 为了深入的了解底层原理呢,写了几段简单的代码结合debug,开始学习底层咯,直接先上代码. public class XmlReaderTest { @Test public void mybatisXmlReaderTest() { String resourceXml = "mybat…
1.引言 本文主要讲解Mybatis的整体程序设计,理清楚框架的主要脉络.后面文章我们再详细讲解各个组件. 2.整体设计 2.1 总体流程 (1)加载配置并初始化       触发条件:加载配置文件 配置来源于两个地方,一处是配置文件,一处是Java代码的注解,将SQL的配置信息加载成为一个个MappedStatement对象(包括了传入参数映射配置.执行的SQL语句.结果映射配置),存储在内存中. (2)接收调用请求       触发条件:调用Mybatis提供的API       传入参数:…
1.引言 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架.再而论述Mybatis作为一个数据持久层框架本身有待改进之处. 2.JDBC实现查询分析 我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤: (1)  加载JDBC驱动 (2)  建立并获取数据库连接 (3)  创建 JDBC Statements 对象 (4)  设置SQL语句的传入参数 (5)  执行SQL语句并获得查询结果 (…
1.引言 本文主要讲解JDBC怎么演变到Mybatis的渐变过程,重点讲解了为什么要将JDBC封装成Mybaits这样一个持久层框架.再而论述Mybatis作为一个数据持久层框架本身有待改进之处. 2.JDBC实现查询分析 我们先看看我们最熟悉也是最基础的通过JDBC查询数据库数据,一般需要以下七个步骤: (1)  加载JDBC驱动 (2)  建立并获取数据库连接 (3)  创建 JDBC Statements 对象 (4)  设置SQL语句的传入参数 (5)  执行SQL语句并获得查询结果 (…
干了一天的活,还有点时间,给兄弟们写点东西吧. 大家有没有发现一个问题?那就是在.Net Core的MVC项目里面,没有.config文件了!!!同志们,没有config文件了啊,这样搞,我以后要做些灵活的配置,又不想动源代码,或者说我们的程序已经打包了,怎么办啊?! 呵呵呵,.Net Core给我们提供了一个叫appsettings.json的文件给我们这些受虐的群众,用于取代config文件,为什么要这么做我不懂,也不想懂.我只要知道怎么去用它就行了. 但是,怎么去用呢?因为我试了一下,淡的…