v6.5.0 (2026-01-15)
<dependency>
<groupId>net.hasor</groupId>
<artifactId>dbvisitor</artifactId>
<version>6.5.0</version>
</dependency>
本版本重点对底层的方言系统(Dialect)进行了架构重构,将 “方言元数据” 与 “命令构建能力”高度内聚,解决了旧架构中存在的抽象割裂问题。
影响范围
- 方言系统(Dialect/Builder)及其继承体系
- 自定义方言扩展 API
更新内容
-
重构
- 方言即工厂:引入
newBuilder()工厂方法,SqlDialect实现类现在负责生产对应的构建器实例。 - 原型模式应用:Dialect 实现类具备双重身份,既作为无状态的元数据单例,也作为有状态的构建器原型。
- 类层级简化:彻底移除了独立的
SqlCommandBuilder、MongoCommandBuilder以及胶水类MongoBuilderDialect。 - 继承体系重组:如果逻辑下沉至
AbstractSqlDialect,形成了AbstractBuilderDialect->AbstractSqlDialect/MongoDialect的清晰层级。
- 方言即工厂:引入
-
优化
- API 统一:上层调用不再需要根据数据库类型判断实例化哪个 Builder,统一使用
dialect.newBuilder()。 - 内聚性提升:数据库特定的元数据(如关键字)与构建逻辑(如 SQL 生成)收敛在同一个方言类中。
- 类型安全:消除了构建器与方言实例不匹配的运行时风险(如
MongoBuilder误用MySqlDialect)。
- API 统一:上层调用不再需要根据数据库类型判断实例化哪个 Builder,统一使用
-
兼容性提示
- 本次重构对普通用户透明,API 保持向下兼容。
- 升 级注意:如果您实现了自定义 Dialect 并依赖了旧版
SqlCommandBuilder,请改为继承AbstractSqlDialect并重写newBuilder()方法。