SuperAPI AI 工具集

511-frameworks-micronaut-jdbc

编程与开发

查看项目

更新于 10-15 09:16

技能介绍

用途

该技能面向在 Micronaut 框架中使用编程式 JDBC 的场景,帮助开发者以安全 SQL 和清晰事务的方式编写数据访问代码。它基于参考规则与正反代码示例给出建议,适用于审查、改进或重构 Micronaut 项目中的 JDBC / SQL 数据访问逻辑。

主要能力

技能覆盖以下内容:

  • 注入 javax.sql.DataSource(基于 micronaut-jdbc-hikari 的 Hikari 连接池),并对 Connection / PreparedStatement 使用 try-with-resources。
  • 使用带绑定参数的 PreparedStatement,避免字符串拼接。
  • 将 ResultSet 行映射为 Java record(使用专门的 mapRow 方法)。
  • 使用 Optional 进行安全的单行查询,不假设 rs.next() 一定成功。
  • 将 SQLException 转换为领域异常(catch-translate-rethrow)。
  • 通过 setFetchSize 流式处理大结果集,避免 OOM。
  • 使用 addBatch / executeBatch 进行批量更新与批量插入。
  • 使用 @Transactional 定义服务边界,以及 TransactionDefinition.Propagation(例如用 REQUIRES_NEW 实现独立提交)。
  • 说明自调用陷阱:应通过注入的 bean 调用事务协作者,而非 this.method()。
  • 使用 SQL 文本块编写多行 SQL(如 upsert、方言特定子句)。
  • 说明何时优先选择 Micronaut Data(@512)而非原生 JDBC。

使用方式

技能定义了明确的工作流:

  1. 阅读参考并评估项目上下文:阅读 references/511-frameworks-micronaut-jdbc.md,并在提出改动前检查当前项目设置。
  2. 收集范围并确定目标改进:识别请求的结果、约束以及最小安全改动集。
  3. 应用与框架一致的改动:按照参考模式与项目约定实现或重构配置/代码。
  4. 运行验证并报告结果:执行相应的构建/测试,并总结改动内容、验证结果及后续操作。

技能包含强制约束:

  • 在应用任何改动前,必须运行 ./mvnw compile 或 mvn compile。
  • 前提条件:项目在应用 JDBC 改进前必须能够编译。
  • 安全要求:如果编译失败,立即停止。
  • 阻塞条件:编译错误必须由用户解决后才能继续。
  • 验证:应用改进后运行 ./mvnw clean verify 或 mvn clean verify。
  • 应用前:阅读参考以获取详细规则与示例。

适用场景

  • 审查 Micronaut 项目中的 JDBC 或 SQL 数据访问。
  • 改进 Micronaut JDBC 的事务与参数绑定。
  • 将 SQLException 转换为领域异常,或流式处理大结果集。
  • 修复绕过 @Transactional 的自调用问题。
  • 审查 Micronaut JDBC 中 Hikari 或连接池数据源的使用。

限制

技能要求项目在改动前可编译,编译失败时必须停止并由用户解决。详细规则、示例与约束需查阅 references/511-frameworks-micronaut-jdbc.md。关于该技能的具体版本、许可、依赖版本或平台支持等信息,资料中暂未提供。