一:ORM框架的思考

1:ORM框架

JDBC连接数据库:
加载JDBC驱动程序
创建数据库连接
创建Statement
执行SQL
遍历封装结果集
处理异常,关闭资源
JDBC连接数据存在哪些问题:
API繁琐,用户需频繁操作JDBC API
sql代码沾染业务代码,耦合深,且不复用
数据类型手动转换
……
ORM:
关系和对象之间的映射
ORM解决什么问题:
ORM帮用户解决像操作对象一样操作数据库层
通用api覆盖,sql代码业务代码分离
数据类型自动转换
……

2:如何简单设计ORM

先花时间思考如何设计ORM,哪些是抽象扩展点,哪些应是具体实现

image.png

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

image.png

配置文件是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类命名较为规范,基本上看类名就知道类的作用

image.png

annotations 注解
binding 一些反射工具类
builder 构建重要对象的包
cache 缓存包
datasource 封装的数据源工厂和数据源
executor sql执行器
io io操作
javassist 一些java助手
logging 日志
mapping 映射
parsing 解析配置文件
session 会话
transaction 事务

Vicene
1 声望0 粉丝