• 1.0.0 bb79777f0c

    1.0.0 Stable

    zhouxy108 released this 2026-06-17 21:12:04 +08:00 | 0 commits to release/1.0.0 since this release

    Simple JDBC 1.0.0

    发布日期: 2026-06-17

    Simple JDBC 第一个正式版本。

    重构

    • 移除 plusone-commons 及 Guava 依赖,内化 AssertToolsNamingToolsThrowingConsumerThrowingPredicate 工具类
    • batchUpdate 中断时对 BatchUpdateResult 的变更逻辑内化到 BatchUpdateResult

    测试

    • 添加 ParamBuilderTest#buildParamsTemporal 测试方法验证时间类型参数构建
    • 添加 TransactionTest 事务异常测试用例
    • 补充测试数据库初始化脚本注释

    文档

    • 新增 CHANGELOG.md 文件记录各版本更新内容
    • 优化 README 文档结构与内容
    • 补充 ParamBuilderSimpleJdbcTemplate 的文档注释
    • 更新 DefaultBeanRowMapper 类文档注释,强调使用场景
    Downloads
  • 1.0.0-RC3 Pre-Release

    zhouxy108 released this 2026-06-05 21:47:01 +08:00 | 19 commits to dev since this release

    Simple JDBC 1.0.0-RC3

    发布日期: 2026-06-05

    第三个候选发布版。对无参数 SQL 执行路径进行了性能优化,并补全了相应的测试覆盖。

    ♻️ 重构与优化

    • 无参数 SQL 改用 Statement 执行updateupdateAndReturnKeysqueryInternal 根据是否有参数分别走 PreparedStatement(有参数)或 Statement(无参数),减少不必要的预编译开销
    • 提取 ResultHandler.mapToList — 消除 ResultSet 遍历的重复代码,统一行映射逻辑
    • ParamBuilder.buildParams 短路处理 — 为 nullCharSequenceNumberBooleanTemporal 等高频类型增加提前返回,提升批量参数构建效率

    📝 文档

    • 更新 README.md,完善使用说明
    • 修正 DefaultBeanRowMapper 的 JavaDoc 描述,避免歧义
    • 更新项目简介

    测试

    • 重构 UpdateTest,按 PreparedStatement / Statement 路径分组
    • 补全 params = null 场景的 Statement 路径测试覆盖
    Downloads
  • 1.0.0-RC2 Pre-Release

    zhouxy108 released this 2026-05-31 07:00:49 +08:00 | 27 commits to dev since this release

    Simple JDBC 1.0.0 第二个发布候选。

    新增

    • TransactionTemplateSimpleJdbcTemplate 中分离为独立类,封装事务生命周期管理(开启/提交/回滚/恢复自动提交)
    • SimpleJdbcTemplate.transaction() 暴露 TransactionTemplate 实例
    • 新增 ParamBuilderTest 单元测试
    • 新增 Instant 类型参数端到端测试

    重构

    • 简化 ParamBuilder 参数构建逻辑
    • 优化批量更新批次内索引计算逻辑

    文档

    • 完善 SimpleJdbcTemplate 类文档注释
    • 更新批量更新相关类(BatchUpdateResult/BatchUpdateStatus/BatchUpdateErrorInfo)的 JavaDoc
    • 更新 README 使用说明和示例

    其他

    • 版权年份由固定范围更新为包含当前时间的表述
    Downloads
  • 1.0.0-RC1 Pre-Release

    zhouxy108 released this 2026-05-29 00:58:34 +08:00 | 40 commits to dev since this release

    项目首个正式发布的候选版本。

    新增

    核心框架

    • SimpleJdbcTemplate 核心模板类,封装 JDBC 连接管理、异常处理和资源释放
    • JdbcOperations 接口规范,定义统一的数据库操作 API
    • JdbcOperationSupport 静态工具类,封装底层 PreparedStatement / Statement 操作

    查询

    • query + ResultHandler:自定义 ResultSet 处理
    • queryList:返回列表(支持 RowMapperClassMap<String, Object> 三种变体)
    • queryFirst:返回 Optional<T>(支持 RowMapperClassMap<String, Object> 三种变体)
    • queryBoolean:返回 boolean,结果集为空时返回 false
    • 全部查询方法提供无参数重载

    更新

    • update:执行 INSERT / UPDATE / DELETE,返回影响行数
    • updateAndReturnKeys:执行 DML 并返回自动生成的主键,支持 RowMapper 映射
    • batchUpdate:分批执行 DML,支持非静默模式(遇错中断)和静默模式(遇错继续)

    批量更新结果

    • BatchUpdateResult:封装批次级粒度的执行结果(总数据量、批次计数、成功/失败/剩余批次)
    • BatchUpdateStatus 枚举(SUCCESS / COMPLETED_WITH_ERRORS / INTERRUPTED)
    • BatchUpdateErrorInfo:封装错误批次的异常详情

    参数构建

    • ParamBuilder.buildParams:构建 Object[] 参数数组,支持 Optional / OptionalInt / OptionalLong / OptionalDouble 自动拆箱
    • ParamBuilder.buildBatchParams:批量构建 List<Object[]> 参数列表

    映射策略

    • RowMapper 函数式接口:ResultSet 单行映射
    • RowMapper.HASH_MAP_MAPPER:将行数据映射为 Map<String, Object>
    • DefaultBeanRowMapper:默认 Bean 映射实现,自动匹配 属性名(小驼峰)↔ 列名(小写蛇形),通过反射调用 setter
    • RowMapper.beanRowMapper(Class) / beanRowMapper(Class, Map) 静态工厂方法

    事务

    • TransactionException:包装事务执行中的原始异常
    • commitIfTrue 方法:根据业务逻辑返回值(true 提交 / false 回滚)控制事务

    测试

    • 基于 H2 内存数据库的集成测试体系
    • 覆盖查询 / 更新 / 批量 / 事务 / RowMapper 全场景

    许可

    • Apache License 2.0
    Downloads