本文总结自拉钩《Java 高薪训练营》,并融入些个人想法,为个人笔记,转载请备注来处。
1) 传统 JDBC 开发问题和解决思路
1.1) 传统 JDBC 开发存在的问题
- 数据库配置信息存在硬编码问题
- 数据库链接被频繁创建
- SQL 语句、设置SQL 参数、获取结果集参数存在硬编码
- 返回结果集手动封装
1.2) 传统 JDBC 开发问题解决思路
- 数据库配置文件抽取
- SQL 语句配置文件抽取
- 反射解决结果集封装繁琐问题
2) 自定义框架设计
2.1) 使用端设计
- 配置文件
- 数据库配置(SQLMapConfig.yml)
- 数据库类型
- Auth 信息
- SQL 配置资源路径
- SQL 配置(Mapper.yml)
- 语句
- 参数类型
- 返回类型
2.2) 核心设计
本质上是对 JDBC 进行封装
- 加载配置
- 解析配置文件: 依赖 [eo-yaml]: https://github.com/decorators-squad/eo-yaml
- 将配置映射为 JavaBean
- SqlMapConfig.yml -> Configuration
- mapper.yml -> MappedStatement
- 创建 SQLSessionFactory -> DefaultSQLSessionFactory 接口以及实现
- openSession: 生产 sqlSession
- 创建 SQLSession -> DefaultSQLSession
- findAll
- findOne
- getById
- update
- delete
- 创建 Executor -> SimpleExecutor
- query(Configuration, MapperStatement, Object... params)
2.3) 实现
在实现过程中,由于使用了 eo-yaml
这个没有足够成熟的库,导致在配置文件中,SQL 不能换行问题未能解决。即用之,不改了!
项目上传到 Github: https://github.com/fives-group/oh-my-pf
- main: 框架源码
- test: 客户端测试源码