diff --git a/README.md b/README.md index 71a1ad2..eff9ce1 100644 --- a/README.md +++ b/README.md @@ -16,13 +16,15 @@ --- -## 2. 设计考量与边界 +## 2. 设计考量与取舍 -`Simple JDBC` 不追求大而全,在功能设计上保持克制。以下是本项目的一些设计考量: +`Simple JDBC` 不追求大而全,在功能设计上保持克制。以下是本项目的一些设计考量与取舍: - 明确**不支持存储过程**:专注于基础 CRUD。 - **不提供分页 API**:不同数据库的分页方言差异巨大,且实际业务中的分页查询往往不是简单的 `LIMIT OFFSET`(存在如游标分页、延迟关联等深度优化空间)。为了保持轻量与灵活,分页 SQL 交由开发者根据具体数据库与业务场景自行编写。 - **不提供缓存支持**:数据缓存应当被视为一个独立的关注点,通常交由更高层的抽象模块来处理。 +- **不支持直接传入 Connection**:为确保数据库连接资源的规范获取与安全释放,Simple JDBC 舍弃了一定的连接管理灵活性,不支持直接传入 Connection,而是需要通过 `DataSource` 来获取连接(详见[8. 连接池集成](#8-连接池集成))。常规操作由 `SimpleJdbcTemplate` 自动完成连接的获取与归还;事务场景下,由 `TransactionTemplate` 实现连接绑定,保障同一事务内所有操作的连接一致性。 +- **有限但灵活的结果映射**:为应对多样化的数据处理需求,Simple JDBC 提供了 `ResultHandler` 与 `RowMapper` 两层抽象机制。前者负责整体结果集的统筹处理,后者专注于单行数据的解析与映射(详见 [4.2 结果映射策略](#42-结果映射策略))。两者均设计为函数式接口,支持通过 Lambda 表达式快速定制映射逻辑。 ---