一:ORM框架的思考
1:ORM框架
JDBC连接数据库:
加载JDBC驱动程序
创建数据库连接
创建Statement
执行SQL
遍历封装结果集
处理异常,关闭资源
JDBC连接数据存在哪些问题:
API繁琐,用户需频繁操作JDBC API
sql代码沾染业务代码,耦合深,且不复用
数据类型手动转换
……
ORM:
关系和对象之间的映射
ORM解决什么问题:
ORM帮用户解决像操作对象一样操作数据库层
通用api覆盖,sql代码业务代码分离
数据类型自动转换
……
2:如何简单设计ORM
先花时间思考如何设计ORM,哪些是抽象扩展点,哪些应是具体实现

那么mybatis做了件什么事情:对外提供接口,屏蔽底层复杂的细节

配置文件是xml还是properties文件或者?解析方式?
mapper映射源可以是注解?xml?或者json?解析方式?
mapper.xml如何映射接口?
接口参数如何映射sql?
sql执行器Bean设计?
mybatis用了哪些设计模式?为什么用这些设计模式?
......
二:如何看mybatis源码
1:mybatis官网
[https://mybatis.org/mybatis-3/zh/index.html](官网链接)
2:构件简单mybatis maven项目
导入mybatis、mysql jar
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.4</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.42</version>
</dependency>
查看mybatis有哪些重要的模块,大概了解mybatis的功能,mybatis类命名较为规范,基本上看类名就知道类的作用

annotations 注解
binding 一些反射工具类
builder 构建重要对象的包
cache 缓存包
datasource 封装的数据源工厂和数据源
executor sql执行器
io io操作
javassist 一些java助手
logging 日志
mapping 映射
parsing 解析配置文件
session 会话
transaction 事务
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。