商城首页欢迎来到中国正版软件门户

您的位置: 首页 > 文章列表 > 硬件相关 > dbVisitor v6.6.0 发布,新一代数据库访问库,规则支持嵌套使用

dbVisitor v6.6.0 发布,新一代数据库访问库,规则支持嵌套使用

  发布于2026-08-16 阅读(0)

扫一扫,手机访问

dbVisitor 6.6.0 正式发布了!虽然从框架底层看,这次的改动不算翻天覆地,但落到实际开发体验上,提升感相当明显。两个最值得关注的点:一是规则终于支持多层嵌套了,二是新增了一套 case/when/else 规则结构。什么意思?简单说,你可以在 SQL 模板里直接写条件分支、做参数逻辑判断,用纯正的 SQL 风格来编排动态逻辑,再也不用在 XML 里堆那些又臭又长的标签了。

v6.6.0 (2026-01-25)

net.hasordbvisitor6.6.0

主要亮点

  1. 规则嵌套——任意规则都能作为子规则被其他规则调用,灵活性直接上了一个台阶。
  2. 新增 case/when/else 规则,同时配套发布了完整的规则说明文档,上手成本很低。

影响范围

  • 全面增强了 dbvisitor 动态 SQL 规则引擎(像 @{and}@{or}@{in}@{case} 这些)的稳定性、安全性和表达能力。动态 SQL 写起来更灵活,也更好控制。

更新详情

  • 新增
    • 引入 case/when/else 规则,复杂条件分支终于有了原生支持。
    • 开放规则嵌套能力,规则内部可以调用其他规则,甚至支持自身递归调用。
  • 优化
    • jdbc-elasticjdbc-mongojdbc-redis 的连接获取流程中加入了资源释放的兜底机制,异常场景下不再容易留下“僵尸连接”。
    • 全面解除了 @{and}@{or} 等规则对参数数量的硬性限制,现在可以自然兼容 in 类多值规则的嵌套使用。
  • 修复
    • MD5Rule 无法处理 SqlArg 类型参数的问题,已修正。
    • @{and}@{or} 的空值判定逻辑做了调整:当它们依赖的所有参数都是 null 时,对应的 SQL 片段会自动剔除——之前的行为存在不一致,现在统一了。
    • 动态表达式中如果字符串包含右大括号 }(例如 #{ '}' }),解析器会误判为表达式终止符,导致后续内容被错误拼接到 SQL 里,存在潜在的注入风险——这个坑已经填平了。
    • 引号内或函数参数中间出现逗号 ,(比如 @{rule, 'a,b'})时,解析器错误地将其识别为规则分隔符并截断,现在也修好了。
    • 部分驱动适配器读取属性列表不全的问题,一并解决。
  • 文档
    • 新增 case/when/else 规则专项文档,语法、示例、最佳实践都讲清楚了。
    • 官网动态规则指南做了重构,新增了 Rule 与传统 XML 方案的对比视图,高级规则(嵌套、组合、自定义)的用法说明也补全了。
本文转载于:https://www.php.cn/faq/2039458.html?uid=1246273 如有侵犯,请联系zhengruancom@outlook.com删除。
免责声明:正软商城发布此文仅为传递信息,不代表正软商城认同其观点或证实其描述。

热门关注