浅谈 mybatis 如何半自动化解耦

作者:微信小助手

发布时间:2020-03-21T15:17:41

(给ImportNew加星标,提高Java技能)

转自:博客园  作者:Alan_beijing

www.cnblogs.com/wangjiming/p/10384975.html

在JAVA发展过程中,涌现出一系列的ORM框架,JPA,Hibernate,Mybatis和Spring jdbc,本系列,将来研究Mybatis。


通过研究mybatis源码,可将mybatis的大致架构总结为下图:

1.根据Mybatis源码,将其抽象为三层:基础支持层,核心处理层和接口层
2.基础支持层包括:数据源、事务管理、日志、类型转换、缓存、Bind、解析器等
3.核心处理层包括:配置解析、配置映射、SQL解析、SQL执行、结果集映射、插件等
4.接口层主要提供JAVA API

 

在本篇文章中,将基于该框架图,解决如下几个问题:

Q1:结合代码解析mybatis的CRUD原理是怎样的?
Q2:为什么半自动化的Mybatis比自动化的Hibernate受欢迎?
Q3:Mybatis为什么能实现松耦合?

一  mybatis的CRUD原理


为了解决该问题,我们先来看看如下代码:


该代码实现的功能是:根据user_id查询用户信息。  从代码中,我们可以看出,大致分为四步:

第一步:读取mybatis的全局配置文件mybatis-config.xml内容
第二步:创建SqlSessionFactory会话工厂
第三步:根据SqlSessionFactory创建SQL会话SqlSession
第四步:执行查询操作