MyBatis
ReycoChou
这个作者很懒,什么都没留下…
展开
-
深入MyBatis-映射文件
Mapper XMLMyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。每一个dao层接口对应一个Mapper xml,需要注意的是Mapper xml的namespace需...原创 2019-03-13 23:31:25 · 166 阅读 · 0 评论 -
深入MyBatis-全局配置文件
properties属性属性可外部配置亦可以通过properties元素的子元素来传递:<!--resource导入属性文件 --><properties resource="org/mybatis/example/config.properties"> <!-- properties子元素传递属性--> <property name="u...原创 2019-03-13 12:23:20 · 86 阅读 · 0 评论 -
深入MyBatis-初探MyBatis
概述MyBatis是一个可以自定义SQL,存储过程和高级映射的持久层框架。MyBatis摒除了大部分的JDBC代码,只使用简单的XML和注解来配置和映射基本数据类型,Map接口和POJO到数据库记录。相对Hibernate&quot;全自动化&quot;持久层框架,MyBatis是一种&quot;半自动&quot;的ORM实现。ORM工具基本思想Hibernate和MyBatis共同点:从配置文件(通常是xml文件)得到se原创 2019-03-12 20:25:19 · 191 阅读 · 0 评论 -
深入MyBatis-运行原理-查询实现
流程图创建代理对象代理对象调用DefaultSqlSession使用Executor调用StatementHandler,创建ParammeterHandler和ResultHandler利用ParameterHandler设置参数,ResultSetHandler处理结果ParameterHandler和ResultHandler底层都是调用TypeHandler,而TypeHa...原创 2019-03-15 20:57:38 · 425 阅读 · 0 评论 -
深入MyBatis-运行原理-getMapper获取到接口的代理对象
流程图DefaultSqlSessionF调用getMapper方法,其中为configuration下的getMapper方法configuration下的getMapper方法,其中为mapperRegistry下的getMapper方法mapperRegistry下的getMapper方法下根据接口类型获取MapperProxyFactoryMapperProxyFactory调...原创 2019-03-15 09:42:06 · 915 阅读 · 0 评论 -
深入MyBatis-运行原理-SqlSession的初始化
1原创 2019-03-15 09:17:15 · 538 阅读 · 0 评论 -
深入MyBatis-插件开发
插件原理MyBatis在四大对象的创建过程中,都会有插件进行介入。插件可以利用动态代理机制一层层的包装目标对象,而实现在目标对象执行目标方法之前进行拦截的效果;MyBatis 允许在已映射语句执行过程中的某一点进行拦截调用。Mybatis插件又称拦截器,默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Excutor–(update, query, flushStatemen...原创 2019-03-19 15:32:46 · 120 阅读 · 0 评论 -
深入MyBatis-运行原理-SqlSessionFactory的初始化
流程图SqlSessionFactory初始化流程:创建SqlSessionFactoryBuilder对象,调用build方法,生成XmlConfigBuilderXmlConfigBuilder创建解析器parser解析每一个标签把详细信息保存在Configuration中解析mapper.xml;Mapper.xml中的每一个元素信息解析出来并保存在全局配置中,将增删查改的每一...原创 2019-03-14 23:39:03 · 475 阅读 · 0 评论 -
深入MyBatis-Java API
SqlSessions使用 MyBatis 的主要 Java 接口就是 SqlSession。我们可以通过这个接口来执行命令,获取映射器和管理事务。SqlSessions 是由 SqlSessionFactory 实例创建的。SqlSessionFactory 对象包含创建 SqlSession 实例的所有方法。而 SqlSessionFactory 本身是由 SqlSessionFactory...原创 2019-03-14 22:14:23 · 137 阅读 · 0 评论 -
深入MyBatis-缓存机制
MyBatis缓存机制MyBatis系统默认定义了两层缓存一级缓存和二级缓存默认情况下,只有一级缓存(SqlSession级别的缓存,也称为本地缓存)开启二级缓存需要手动开启和配置,是基于namespace级别的缓存,也称为全局缓存为了提高扩展性,MyBatis定义了缓存接口Cache。我们可以通过实现Cache接口自定义二级缓存一级缓存一级缓存即本地缓存,作用域默认为SqlSe...原创 2019-03-14 15:33:45 · 212 阅读 · 0 评论 -
深入MBatis-动态SQL
if动态 SQL 通常要做的事情是根据条件包含 where 子句的一部分。比如:<select id="getStudentByConditionIf" resultType="com.Reyco.beans.Student"> select * from student where score >= #{score} <if test="name != n...原创 2019-03-14 12:17:17 · 308 阅读 · 0 评论 -
MyBayis插件-逆向工程
什么是逆向工程MBG可以根据数据库表自动生成pojo类,Mapper映射文件如何使用逆向工程导入逆向工程所需依赖编写Java代码调用逆向工程(Idea下可以直接点击Maven Plugins生成逆向工程,无需编写Java代码)创建generatorConfig.xml配置文件添加Maven依赖<dependency> <groupId>org.myb...原创 2019-03-27 20:55:15 · 179 阅读 · 0 评论