Mybatis
Franco蜡笔小强
小码农
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Mybatis-Configuration-详解
ConfigurationMyBatis的初始化会执行SqlSessionFactoryBuilder的中build()方法,build方法又会调用XMLConfigBuilder()的内部parse()方法进行加载配置,所以我们先看一下parse()的源码:public Configuration parse() { if (parsed) { throw new Build...转载 2019-11-25 16:01:37 · 986 阅读 · 0 评论 -
Mybatis源码分析(四)mapper接口方法是怎样被调用到的
一、问题在Mybatis架构的最上层就是接口层,它定义的是与数据库交互的方式。还记不记得我们在前面章节说的那两种方式?不记得没关系,我们回忆一下。 Mybatis提供的API 使用Mybatis提供的API进行操作,通过获取SqlSession对象,然后根据Statement Id 和参数来操作数据库。String statement = "com.viewscenes.net...原创 2019-04-09 13:35:22 · 1857 阅读 · 0 评论 -
Mybatis源码分析(三)通过实例来看typeHandlers
一、案例分析在日常开发中,我们肯定有对日期类型的操作。比如订单时间、付款时间等,通常这一类数据在数据库以datetime类型保存。如果需要在页面上展示此值,在Java中以什么类型接收它呢?在不执行任何二次操作的情况下: 用java.util.Date接收,在页面展示的就是TueOct1616:05:13CST2018。 用java.lang.String接收,在页面展示的就是20...原创 2019-04-09 13:22:23 · 363 阅读 · 0 评论 -
Mybatis源码分析(二)XML的解析和Annotation的支持
一、前言上一节内容我们简单回顾了Mybatis的整体架构和相关概念知识点,并简述了本系列所用框架的版本。Mybatis功能强大,花样繁多。我们不会太关心所有的技术点,而是重点剖析常用的功能点。同Spring相比,Mybatis多以应用为主。从本节开始,我们正式开始源码的分析。二、环境配置每个基于 MyBatis 的应用都是以一个 SqlSessionFactory 的实例为中心的,Sq...原创 2019-04-09 13:16:35 · 439 阅读 · 0 评论 -
Mybatis源码分析(一)Mybatis的架构设计简介
该系列转自:清幽之地的博客一、前言撸完Spring框架,我们接着下一个征程,Mybatis。相对Spring而言,Mybatis就显得短小精悍。在本系列源码开始之前,我们先来一起了解下Mybatis的相关知识点。二、什么是 MyBatis ?MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置...原创 2019-04-09 12:55:57 · 255 阅读 · 0 评论 -
Mybatis源码分析(七)自定义缓存、分页的实现
一、缓存我们知道,在Mybatis中是有缓存实现的。分一级缓存和二级缓存,不过一级缓存其实没啥用。因为我们知道它是基于sqlSession的,而sqlSession在每一次的方法执行时都会被新创建。二级缓存是基于namespace,离开了它也是不行。有没有一种方式来提供自定义的缓存机制呢?1、ExecutorExecutor是Mybatis中的执行器。所有的查询就是调用它的<E...原创 2019-04-10 10:28:37 · 485 阅读 · 0 评论 -
Mybatis源码分析(六)插件的创建代理过程
一、配置MyBatis 允许你在已映射语句执行过程中的某一点进行拦截调用。默认情况下,MyBatis 允许使用插件来拦截的方法调用包括:Executor、ParameterHandler、ResultSetHandler、StatementHandler。这几个方法我们在开篇第一章节就已经介绍了,分别是执行器、参数处理器、返回结果集处理器、Statement处理器。 通常,我们在xml文...原创 2019-04-10 10:22:52 · 255 阅读 · 0 评论 -
Mybatis源码分析(五)探究SQL语句的执行过程
一、重温JDBCJava Database Connectivity,简称JDBC。是Java语言中用来规范客户端程序如何来访问数据库的应用程序接口,提供了诸如查询和更新数据库中数据的方法。 随着Java ORM框架的发展,已经很少有机会再在生产系统中写JDBC的代码来访问数据库了,但是基本流程我们还是要熟悉。下面以一个简单的查询为例,温故一下JDBC。public static voi...原创 2019-04-10 10:17:05 · 655 阅读 · 0 评论 -
MyBatis的底层实现原理
动态代理的功能:通过拦截器方法回调,对目标target方法进行增强。言外之意就是为了增强目标target方法。上面这句话没错,但也不要认为它就是真理,殊不知,动态代理还有投鞭断流的霸权,连目标target都不要的科幻模式。注:本文默认认为,读者对动态代理的原理是理解的,如果不明白target的含义,难以看懂本篇文章,建议先理解动态代理。一、自定义JDK动态代理之投鞭断流实现自动映射器M...原创 2018-09-11 10:56:32 · 47816 阅读 · 8 评论 -
【Mybatis】源码设计思想的一点见解
前言MyBatis是常见的Java数据库访问层框架。在日常工作中,开发人员多数情况下是使用MyBatis;首先他是一个很好的很灵活的ORM框架,那么不论多好,根本都是操作数据库数据,也就是JDBC;那么我们先回忆一下JDBC:JDBC一、采用JDBC访问数据库的基本步骤: 载入JDBC驱动程序: 定义连接URL,建立连接: jdbc:子协议,并且载入服务器的主机名、端口、数据库名(或引...原创 2018-04-13 18:38:07 · 1100 阅读 · 0 评论
分享