sqltoy-orm 5.6.90.RC3 已经发布,ORM 框架
sqltoy-orm 5.6.90.RC3 已经发布,ORM 框架
此版本更新内容包括:
---
## 背景
当 LIKE 查询的参数值中包含 `_`、`%`、`\` 等 SQL 通配符/转义符时,这些字符会被数据库当作通配符解释,导致查询结果不符合预期。例如用户搜索 `100%off`,`%` 会匹配任意字符序列,返回多余数据。
## 处理方式
`processLike` 方法对 LIKE 参数值中的特殊字符自动转义,并在每条 LIKE 条件后补充 `ESCAPE '\'` 子句:
```
-- 输入: "test_value"
-- 转义后参数: "%test\_value%"
where name like ? ESCAPE '\'
```
**转义规则**:`_` → `\_`,`%` → `\%`,`\` → `\\`,随后追加 `ESCAPE '\'` 告知数据库以 `\` 作为转义字符。
**多 LIKE + 等值混合**:每条 LIKE 独立转义并独立追加 ESCAPE,参数索引映射正确。
```
where status = ? and name like ? ESCAPE '\' and code like ? ESCAPE '\'
```
## 测试
24 项集成测试全部通过,覆盖单 LIKE、多 LIKE、LIKE + 等值混合、`_`/`%`/`\` 各类特殊字符场景。
## 升级
```
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.6.90.RC3</version>
</dependency>
<!-- springboot -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-spring-starter</artifactId>
<version>5.6.90.RC3</version>
</dependency>
<!-- solon 插件 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
<version>5.6.90.RC3</version>
</dependency>
```
详情查看:[点击这里](https://gitee.com/sagacity/sagacity-sqltoy/releases/5.6.90.RC3)
---
原文链接:[点击查看](https://www.oschina.net/news/492992)
此版本更新内容包括:
---
## 背景
当 LIKE 查询的参数值中包含 `_`、`%`、`\` 等 SQL 通配符/转义符时,这些字符会被数据库当作通配符解释,导致查询结果不符合预期。例如用户搜索 `100%off`,`%` 会匹配任意字符序列,返回多余数据。
## 处理方式
`processLike` 方法对 LIKE 参数值中的特殊字符自动转义,并在每条 LIKE 条件后补充 `ESCAPE '\'` 子句:
```
-- 输入: "test_value"
-- 转义后参数: "%test\_value%"
where name like ? ESCAPE '\'
```
**转义规则**:`_` → `\_`,`%` → `\%`,`\` → `\\`,随后追加 `ESCAPE '\'` 告知数据库以 `\` 作为转义字符。
**多 LIKE + 等值混合**:每条 LIKE 独立转义并独立追加 ESCAPE,参数索引映射正确。
```
where status = ? and name like ? ESCAPE '\' and code like ? ESCAPE '\'
```
## 测试
24 项集成测试全部通过,覆盖单 LIKE、多 LIKE、LIKE + 等值混合、`_`/`%`/`\` 各类特殊字符场景。
## 升级
```
<!-- 其他非spring框架可以基于sagacity-sqltoy 进行扩展 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy</artifactId>
<version>5.6.90.RC3</version>
</dependency>
<!-- springboot -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-spring-starter</artifactId>
<version>5.6.90.RC3</version>
</dependency>
<!-- solon 插件 -->
<dependency>
<groupId>com.sagframe</groupId>
<artifactId>sagacity-sqltoy-solon-plugin</artifactId>
<version>5.6.90.RC3</version>
</dependency>
```
详情查看:[点击这里](https://gitee.com/sagacity/sagacity-sqltoy/releases/5.6.90.RC3)
---
原文链接:[点击查看](https://www.oschina.net/news/492992)
评论
暂无评论。