JDBC 业务代码指南
使用 JDBC 仓储、QueryDSL SQL、Q 表与查询扩展点。
浏览全部手册
本页目录
文档来源与 Markdown 原文
权威正文:ineed-core/docs/guides/jdbc.md。网站按工作区快照同步,原文中的历史日期和验证范围保留。
开始编码前核对同版本源码;跨仓文件引用可在源码定位目录查找。
下载 Markdown 原文 ↓与 JPA、MyBatis-Flex、R2DBC共同组成持久化开发入口。
Repository
业务 Repository 使用接口组合 Core 的 CRUD/状态等 fragment,声明 GetEntityClassOperation<E> 并提供 getEntityClass()。只组合对象实际需要的能力;不要生成空 RepositoryImpl 或转发壳。
简单外键 count/exists/delete/findBy 定义在具体仓储。派生方法表达字段条件并不自动代表所有租户、删除、权限条件已具备;按实际调用核对隔离。
完整参考:CategoryDefinitionRepository。
Entity、Converter、Manager
Entity 使用当前 JDBC 基类和 Spring Data 映射,声明业务所需租户/状态能力。Converter 在 converter/,仅覆盖有特殊映射的方法。
Manager 组合具体能力,提供仓储 operation、converter 和查询表路径。业务规则放生命周期或领域方法,事务编排仍由 Service 承担。
查询使用本模块手写 QXxx extends QuerydslSqlTable;Manager 覆盖 getSqlTablePath() 并引用 Q 类型字段。不要将 JPA 自动生成 Q 类或 MyBatis-Flex TableDef 当作 JDBC 的实现。
源码参考:QCategoryDefinition、CategoryDefinitionManager。
查询和关系
在 appendWhereOfQuery 等真实扩展点补业务过滤;关键字搜索通过既有入口声明字段。查询投影与 VO 对齐,检查排序、分页、空条件和 join 的租户/删除过滤。
关系查询由 Manager 组织查询并返回需要的 VO;Service 不先查关系 ID 再逐个回查对象。物理删除子表数据通过对应 Repository 方法封装,钩子时序见删除规范。
验证
先运行 JDBC 框架契约入口,再验证真实目标数据库中的列映射、唯一约束、派生查询、join 和事务回滚。Core 的记录型或内存型仓储测试不能代替真实数据库。
在 Core 根目录运行框架链路:
mvn -pl ineed-core-tests/ineed-core-test-webmvc -am \
-Dtest=WebMvcJdbcBusinessChainTest,WebMvcJdbcSearchBusinessChainTest \
-Dsurefire.failIfNoSpecifiedTests=false test
命令的环境前提与证据分层见测试规范。业务数据库测试入口随具体模块维护,不使用教程命令重建已有业务库。
仍有疑问?按反馈清单整理复现信息 →