115 Commits

Author SHA1 Message Date
7de2a7eec1 refactor: 将单列查询 Class 重载标记为过时,新增语义明确的方法
- 新增 queryValues(sql, args, Class) 替代 queryList(sql, args, Class)
- 新增 queryValue(sql, args, Class) 替代 queryFirst(sql, args, Class)
- 新增 queryValueOrDefault(sql, args, Class, defaultVal) 聚合查询便捷方法
- 旧方法标记 @Deprecated,委托至新方法,后续版本移除
- 更新 README 方法列表和示例代码
- 补充 queryValueOrDefault 单元测试 6 个
2026-06-18 02:58:43 +08:00
76bfff2d90 docs: 更新设计考量章节标题并补充内容 2026-06-18 02:52:37 +08:00
6f2882cd08 refactor!: 将工厂方法异常类型从 SQLException 改为 IllegalStateException
DefaultBeanRowMapper.of() 及 RowMapper.beanRowMapper() 在反射异常时
不再抛出受检异常 SQLException,改为抛出非受检异常 IllegalStateException。
同时优化相关 Javadoc 文档并同步更新测试断言。

BREAKING CHANGE: beanRowMapper() 和 of() 方法不再抛出 SQLException。
调用方 catch (SQLException e) 将静默失效,建议移除相关 catch 块或
改为 catch (IllegalStateException)。
2026-06-18 02:41:10 +08:00
5100fa5f1d docs: 添加示例代码 2026-06-17 23:27:43 +08:00
9abbef8b86 prepare 1.1.0 2026-06-17 21:24:03 +08:00
1f566ca488 release/1.0.0 [plusone/simple-jdbc#10 (Gitea)] 2026-06-17 21:16:38 +08:00
bb79777f0c docs: 修复文档错误 2026-06-17 21:06:40 +08:00
cf911c3756 release 1.0.0 2026-06-17 20:57:43 +08:00
f471c1a489 docs: 调整文档描述 2026-06-17 20:41:09 +08:00
f35cfac913 docs: 更新 DefaultBeanRowMapper 类文档注释,强调使用场景 2026-06-17 20:27:26 +08:00
76255bf3eb docs: 修改 README.md
- 移除标题中的emoji
- 新增“设计考量与边界”章节
2026-06-17 18:47:34 +08:00
aeb57dcdba refactor: 将中断控制逻辑内化到 BatchUpdateResult 中
- BatchUpdateResult 新增 quietly 字段,由 recordErrorBatch() 自行判断
  状态设置为 INTERRUPTED 或 COMPLETED_WITH_ERRORS
- 移除 interrupt() 方法,消除 recordErrorBatch → interrupt 的时序耦合
- 外部调用方仅需 break 控制循环,不再干预结果对象的状态流转
2026-06-17 17:27:13 +08:00
a0df4136f4 refactor!: 移除 plusone-commons 及 Guava 依赖,内化工具方法
完全移除对外部工具库 plusone-commons 和 Guava 的编译期依赖,
将所需功能内化实现,使项目成为真正的零依赖轻量级 JDBC 封装库。

- 新增 AssertTools: 断言工具(checkArgument / checkNotNull / checkState / checkCondition)
- 新增 NamingTools: 命名转换(camelToSnake)
- 新增 ThrowingConsumer / ThrowingPredicate: 可抛受检异常的函数式接口
- 新增 AssertToolsTests: 完整覆盖断言工具所有方法及边界场景
- pom.xml 移除 plusone-dependencies BOM,直接声明 jsr305 / test 依赖版本
- DefaultBeanRowMapper 使用 NamingTools.camelToSnake 替代 Guava CaseFormat
- ParamBuilder 内联 Optional 展开逻辑,去除 OptionalTools / CollectionTools
- JdbcOperationSupport 用 null/长度判断替代 ArrayTools.isEmpty/isNotEmpty
- NOTICE 移除第三方依赖声明;README 移除无依赖分支说明
- 测试:新增缩写映射(URL/XML/ID/HTML/HTTP)覆盖、TransactionException 构造器测试

BREAKING CHANGE: BatchUpdateStatus 不再实现 IWithIntCode 接口;
plusone-commons 和 Guava 不再作为传递依赖提供。
2026-06-17 17:21:31 +08:00
ad0fbb788e docs: 添加对无依赖分支(feature/no-dependencies)的特性和适用情况的说明 2026-06-06 00:59:40 +08:00
d740ad8467 docs: 优化 README 文档结构与内容
- 调整章节顺序
- 为所有二级及以下标题添加序号
- 移除示例代码注释中的序号,避免与标题序号冲突
- 新增「连接池集成」章节(HikariCP/Druid/DBCP 2),快速开始中添加引导提示
- 快速开始各小节末尾添加跳转指引,关联至对应详细章节
- 补充事务管理章节的内容
2026-06-06 00:43:06 +08:00
e577f72d4f docs: 新增 CHANGELOG.md 文件记录各版本更新内容 2026-06-05 22:31:27 +08:00
ef39c4323c test: 补充测试数据库初始化脚本的注释 2026-06-05 22:31:27 +08:00
d70e12e254 docs: 补充 ParamBuilderSimpleJdbcTemplate 的文档注释 2026-06-05 22:31:27 +08:00
721d0bbd5e test: 添加事务异常测试用例 2026-06-05 22:31:27 +08:00
0b3675d3a4 test: 添加 buildParamsTemporal 测试方法验证时间类型参数构建 2026-06-05 22:31:27 +08:00
8b4f5bac65 test: 重构测试类 UpdateTest,补全 Statement 路径覆盖
- 按 update / updateAndReturnKeys 分组,内部再按 PreparedStatement
  (有参数)和 Statement(无参数)子路径组织,提升可维护性
- 重命名 3 个测试方法以消除歧义:
    testUpdateWithNullParams → testUpdateWithNullElement
    testUpdateWithParamsIsNull → testUpdateWithParamsNull
    testUpdateAndReturnKeysWithParamsIsNull → testUpdateAndReturnKeysWithParamsNull
- 新增 2 个测试用例补全 params=null 的 Statement 路径覆盖:
    testUpdateWithParamsNull
    testUpdateAndReturnKeysWithParamsNull
2026-06-05 21:17:12 +08:00
486d0c98c7 fix: 修复 updateAndReturnKeys 执行无参 SQL 无法获取生成的 key 的问题 2026-06-05 21:12:25 +08:00
f5909818c3 refactor: JdbcOperationSupport 中无参数 SQL 改用 Statement 执行
update、updateAndReturnKeys、queryInternal 三个方法根据是否有参数,分别走 PreparedStatement(有参数)或 Statement(无参数),避免无参数时不必要的预编译开销
2026-06-05 20:49:17 +08:00
3753aafd61 refactor: 提取 ResultHandler.mapToList 消除 ResultSet 遍历重复代码 2026-06-05 20:28:16 +08:00
f323d04d57 refactor: ParamBuilder#buildParams 中为常用数据类型添加短路处理
提取 buildParams 中的 lambda 为 handleItem 方法,并在 Optional 系列检测之前,为 null、CharSequence、Number、Boolean、Temporal 等高频类型增加提前返回逻辑,提升批量参数构建时的处理效率。

附带行为变化:CharSequence 实现类(如 StringBuilder/StringBuffer)现在会通过 toString() 转为 String 后再传递。
2026-06-05 20:08:08 +08:00
eabd5d7f77 docs: 更新项目简介 2026-06-02 23:31:24 +08:00
152094029e docs: 更新 DefaultBeanRowMapper 的描述以避免歧义 2026-06-02 23:21:26 +08:00
5b643291eb docs: 更新 README.md 2026-06-02 23:21:12 +08:00
492be49322 docs: 完善 SimpleJdbcTemplate 类文档注释 2026-05-31 05:56:32 +08:00
1a308ed30e refactor: 提取 TransactionTemplate,分离事务管理职责
将 executeTransaction / commitIfTrue 及 TransactionJdbcExecutor
从 SimpleJdbcTemplate 移至独立的 TransactionTemplate 类:

- 新增 TransactionTemplate,封装事务生命周期(开启/提交/回滚)
- SimpleJdbcTemplate 新增 transaction() 入口
- 更新 TransactionTest 适配新 API:template.transaction().execute()
- 更新 README.md 事务章节,说明 TransactionTemplate 使用方式
2026-05-31 05:48:51 +08:00
b639daca30 chore: 将版权年份从固定范围更新为包含当前时间的表述 2026-05-31 05:21:18 +08:00
20d10b84ee test: 添加Instant类型参数测试用例 2026-05-31 04:54:33 +08:00
8e543b40a6 test: 添加 ParamBuilder 参数构建工具类单元测试
- 验证 buildParams 方法对各种 Optional 类型的拆箱处理
- 测试普通参数、Optional<?>、OptionalInt、OptionalLong、OptionalDouble 的处理逻辑
- 验证 buildBatchParams 方法对集合的批量映射功能
- 测试空参数、边界情况和私有构造器的异常处理
2026-05-31 04:52:49 +08:00
3aff7509eb refactor: 简化 ParamBuilder 中的参数构建逻辑 2026-05-31 04:51:15 +08:00
3ad5718f8c feat: 优化为批量更新结果类的 toString 方法实现
- 为BatchUpdateErrorInfo类实现toString方法
- 重构BatchUpdateResult类的toString方法,调整字段顺序
2026-05-31 04:21:33 +08:00
8de546b7a6 docs: 更新批量更新相关类的JavaDoc文档
- 优化 BatchUpdateErrorInfo、BatchUpdateResult 类和成员的注释
- 为 BatchUpdateStatus 枚举添加详细的类注释和枚举值注释
2026-05-31 04:19:10 +08:00
9bf44c5494 refactor: 优化批量更新批次内索引计算逻辑
- 将 indexInBatch 改为 1-based 计算方式:批次触发条件改为 indexInBatch==batchSize,增强可读性
- 重命名 getUpdateCountsInternal 为 getUpdateCountsOnError,语义更清晰
- 精简方法参数,移除新方案下多余的入参 paramsSize/batchSize/itemIndex
- 补充关键变量注释
2026-05-31 03:21:12 +08:00
a51fcef845 docs: 更新文档完善使用说明和示例 2026-05-31 01:36:58 +08:00
cb9fd4ca75 build: 保持开发分支的版本后缀标识为 SNAPSHOT 2026-05-29 01:02:30 +08:00
ddddea0519 1.0.0-RC1 [plusone/simple-jdbc#9 (Gitea)] 2026-05-29 00:59:56 +08:00
8dc762152c chore(pom): 更新版本号并添加发布配置
- 将项目版本从 1.0.0-SNAPSHOT 更新为 1.0-RC1
- 更新 plusone-commons 依赖版本从 1.1.0-SNAPSHOT 到 1.1.0-RC2
- 添加 Apache License 许可证信息、开发者信息、SCM 配置
- 添加 release profile 包含 GPG 签名和中央仓库发布插件配置
1.0.0-RC1
2026-05-29 00:52:26 +08:00
ca3d9c67a4 docs: 完善文档注释 2026-05-29 00:30:34 +08:00
7052a621dd docs: 更新版权信息和作者标识 2026-05-29 00:07:57 +08:00
8fc316337d refactor: 将获取 updateCounts 的逻辑提取到独立方法
将异常处理中获取 updateCounts 的逻辑提取为独立的私有方法
getUpdateCountsInternal,提高代码可读性和可维护性。
2026-05-27 05:01:44 +08:00
4c995b7d21 refactor: 优化 batchUpdate 代码
Signed-off-by: ZhouXY108 <luquanlion@outlook.com>
2026-05-26 20:34:40 +00:00
08e23f984f docs: 更新 README.md 中的说明和示例 2026-05-27 04:14:17 +08:00
b5ed69a31b test: 重新编写测试用例完成必要单元测试 2026-05-27 04:00:09 +08:00
ee68cb4d00 refactor: 优化变量和私有嵌套类的命名
- 将循环计数器变量从 'i' 重命名为更具描述性的 'itemIndex',提高代码可读性
- 将 JdbcExecutor 重命名为 TransactionJdbcExecutor 以更好地反映其事务处理功能
2026-05-27 03:57:50 +08:00
b37dbde2b3 refactor: 移除 JdbcOperationSupport#queryFirstBoolean 方法
移除了 `JdbcOperationSupport` 中的 `queryFirstBoolean` 静态方法,
统一使用 `queryFirst` 方法配合 `Boolean.class` 进行类型转换。
2026-05-27 03:57:41 +08:00
99de826c68 feat: DefaultBeanRowMapper#mapRow 在异常处理中使用具体的bean类型名称提供更详细的错误信息 2026-05-27 03:57:27 +08:00