v6.6.0 (2026-01-25)
<dependency>
<groupId>net.hasor</groupId>
<artifactId>dbvisitor</artifactId>
<version>6.6.0</version>
</dependency>
主要看点
- 新增 规则允许嵌套其它规则使用。
- 新增 规则文档,详细介绍了新增的 case/when/else 规则。
影响范围
- dbvisitor 动态 SQL 规则引擎 (
@{and},@{or},@{in},@{case}等),稳定性、安全性、灵活动态 SQL 表达式的能力得到提升。
更新内容
- 新增
- 新增 case/when/else 规则用于实现更加灵活的分支选择。
- 新增 规则允许嵌套其它规则使用。
- 优化
- 优化 jdbc-elastic、jdbc-mongo、jdbc-redis 在链接获取时增加释放资源的防御性编程。
- 优化
@{and},@{or}等规则全面解除多值限制。解除后可以适应如 in 规则的嵌套。
- 修复
- 修复
MD5Rule,用于对参数进行 MD5 加密处理,不支持SqlArg类型参数的问题。 - 修复
@{and},@{or}的空值判断逻辑,现在当条件片段中引用的所有参数均为null时,该片段会自动正确丢弃(此前行为不一致)。 - 修复 如果动态表达式内部包含的字符串中含有右大括号
}(例如#{ '}' }),解析器可能会错误地将其识别为表达式结束符。- 这会导致后续的内容被直接拼接为 SQL 片段,在特定场景下可能引发 SQL 注入风险。
- 修复 在引号字符串或函数参数中包含逗号
,时,解析器错误地将其识别为规则分隔符的问题(如@{rule, 'a,b'}曾被错误截断) - 修复 驱动适配器可能获取的属性列表不完全的问题。
- 修复
- 文档
- 新增 规则文档,详细介绍了新增的 case/when/else 规则和 规则的使用方法。
- 重构了官网动态规则文档,增加了
RulevsXML的直观对比,并补充了高级规则的详细用法。