本文总结自拉钩《Java 高薪训练营》,并融入些个人想法,为个人笔记,转载请备注来处。

1) 传统 JDBC 开发问题和解决思路

1.1) 传统 JDBC 开发存在的问题

  1. 数据库配置信息存在硬编码问题
  2. 数据库链接被频繁创建
  3. SQL 语句、设置SQL 参数、获取结果集参数存在硬编码
  4. 返回结果集手动封装

1.2) 传统 JDBC 开发问题解决思路

  1. 数据库配置文件抽取
  2. SQL 语句配置文件抽取
  3. 反射解决结果集封装繁琐问题

2) 自定义框架设计

2.1) 使用端设计

  1. 配置文件
    1. 数据库配置(SQLMapConfig.yml)
    2. 数据库类型
    3. Auth 信息
    4. SQL 配置资源路径
    5. SQL 配置(Mapper.yml)
    6. 语句
    7. 参数类型
    8. 返回类型

2.2) 核心设计

本质上是对 JDBC 进行封装

  1. 加载配置
  2. 将配置映射为 JavaBean
    1. SqlMapConfig.yml -> Configuration
    2. mapper.yml -> MappedStatement
  3. 创建 SQLSessionFactory -> DefaultSQLSessionFactory 接口以及实现
    • openSession: 生产 sqlSession
  4. 创建 SQLSession -> DefaultSQLSession
    • findAll
    • findOne
    • getById
    • update
    • delete
  5. 创建 Executor -> SimpleExecutor
    • query(Configuration, MapperStatement, Object... params)

2.3) 实现

在实现过程中,由于使用了 eo-yaml 这个没有足够成熟的库,导致在配置文件中,SQL 不能换行问题未能解决。即用之,不改了!
项目上传到 Github: https://github.com/fives-group/oh-my-pf

  • main: 框架源码
  • test: 客户端测试源码