跳到主要内容

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 实现类具备双重身份,既作为无状态的元数据单例,也作为有状态的构建器原型。
    • 类层级简化:彻底移除了独立的 SqlCommandBuilderMongoCommandBuilder 以及胶水类 MongoBuilderDialect
    • 继承体系重组:如果逻辑下沉至 AbstractSqlDialect,形成了 AbstractBuilderDialect -> AbstractSqlDialect / MongoDialect 的清晰层级。
  • 优化

    • API 统一:上层调用不再需要根据数据库类型判断实例化哪个 Builder,统一使用 dialect.newBuilder()
    • 内聚性提升:数据库特定的元数据(如关键字)与构建逻辑(如 SQL 生成)收敛在同一个方言类中。
    • 类型安全:消除了构建器与方言实例不匹配的运行时风险(如 MongoBuilder 误用 MySqlDialect)。
  • 兼容性提示

    • 本次重构对普通用户透明,API 保持向下兼容。
    • 升级注意:如果您实现了自定义 Dialect 并依赖了旧版 SqlCommandBuilder,请改为继承 AbstractSqlDialect 并重写 newBuilder() 方法。

相关阅读