
MyBatis
ReycoChou
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
深入MyBatis-映射文件
Mapper XML MyBatis 的真正强大在于它的映射语句,也是它的魔力所在。由于它的异常强大,映射器的 XML 文件就显得相对简单。如果拿它跟具有相同功能的 JDBC 代码进行对比,你会立即发现省掉了将近 95% 的代码。MyBatis 就是针对 SQL 构建的,并且比普通的方法做的更好。每一个dao层接口对应一个Mapper xml,需要注意的是Mapper xml的namespace需...原创 2019-03-13 23:31:25 · 207 阅读 · 0 评论 -
深入MyBatis-全局配置文件
properties属性 属性可外部配置亦可以通过properties元素的子元素来传递: <!--resource导入属性文件 --> <properties resource="org/mybatis/example/config.properties"> <!-- properties子元素传递属性--> <property name="u...原创 2019-03-13 12:23:20 · 102 阅读 · 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 · 222 阅读 · 0 评论 -
深入MyBatis-运行原理-查询实现
流程图 创建代理对象 代理对象调用DefaultSqlSession 使用Executor调用StatementHandler,创建ParammeterHandler和ResultHandler 利用ParameterHandler设置参数,ResultSetHandler处理结果 ParameterHandler和ResultHandler底层都是调用TypeHandler,而TypeHa...原创 2019-03-15 20:57:38 · 464 阅读 · 0 评论 -
深入MyBatis-运行原理-getMapper获取到接口的代理对象
流程图 DefaultSqlSessionF调用getMapper方法,其中为configuration下的getMapper方法 configuration下的getMapper方法,其中为mapperRegistry下的getMapper方法 mapperRegistry下的getMapper方法下根据接口类型获取MapperProxyFactory MapperProxyFactory调...原创 2019-03-15 09:42:06 · 997 阅读 · 0 评论 -
深入MyBatis-运行原理-SqlSession的初始化
1原创 2019-03-15 09:17:15 · 577 阅读 · 0 评论 -
深入MyBatis-插件开发
插件原理 MyBatis在四大对象的创建过程中,都会有插件进行介入。插件可以利用动态代理机制一层层的包装目标对象,而实现在目标对象执行目标方法之前进行拦截的效果;MyBatis 允许在已映射语句执行过程中的某一点进行拦截调用。 Mybatis插件又称拦截器, 默认情况下,MyBatis 允许使用插件来拦截的方法调用包括: Excutor–(update, query, flushStatemen...原创 2019-03-19 15:32:46 · 140 阅读 · 0 评论 -
深入MyBatis-运行原理-SqlSessionFactory的初始化
流程图 SqlSessionFactory初始化流程: 创建SqlSessionFactoryBuilder对象,调用build方法,生成XmlConfigBuilder XmlConfigBuilder创建解析器parser 解析每一个标签把详细信息保存在Configuration中 解析mapper.xml;Mapper.xml中的每一个元素信息解析出来并保存在全局配置中,将增删查改的每一...原创 2019-03-14 23:39:03 · 515 阅读 · 0 评论 -
深入MyBatis-Java API
SqlSessions 使用 MyBatis 的主要 Java 接口就是 SqlSession。我们可以通过这个接口来执行命令,获取映射器和管理事务。SqlSessions 是由 SqlSessionFactory 实例创建的。SqlSessionFactory 对象包含创建 SqlSession 实例的所有方法。而 SqlSessionFactory 本身是由 SqlSessionFactory...原创 2019-03-14 22:14:23 · 169 阅读 · 0 评论 -
深入MyBatis-缓存机制
MyBatis缓存机制 MyBatis系统默认定义了两层缓存 一级缓存和二级缓存 默认情况下,只有一级缓存(SqlSession级别的缓存,也称为本地缓存)开启 二级缓存需要手动开启和配置,是基于namespace级别的缓存,也称为全局缓存 为了提高扩展性,MyBatis定义了缓存接口Cache。我们可以通过实现Cache接口自定义二级缓存 一级缓存 一级缓存即本地缓存,作用域默认为SqlSe...原创 2019-03-14 15:33:45 · 247 阅读 · 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 · 340 阅读 · 0 评论 -
MyBayis插件-逆向工程
什么是逆向工程 MBG可以根据数据库表自动生成pojo类,Mapper映射文件 如何使用逆向工程 导入逆向工程所需依赖 编写Java代码调用逆向工程(Idea下可以直接点击Maven Plugins生成逆向工程,无需编写Java代码) 创建generatorConfig.xml配置文件 添加Maven依赖 <dependency> <groupId>org.myb...原创 2019-03-27 20:55:15 · 206 阅读 · 0 评论