[dromara/hutool]使用db下的Condition构建最简单的查询生产sql不正确

2023-12-08 615 views
9

版本情况

JDK版本: jdk11 hutool版本: 5.8.23(请确保最新尝试是否还有问题)

问题描述(包括截图)

我使用DB下Condition类准备包装:id = 11, 这个条件,所以代码为: Condition condition = new Condition(primaryKey, primaryKeyValue); String querySql1 = sqlBuilder.select(allSqlSelect).from(tableName).where(condition).build(); 很简单的一个where id = 11 的查询,但是我发下最终的sql为 id = ? 企业微信20231113-115427

是我的写法有问题吗?

  1. 复现代码
 Condition condition = new Condition(primaryKey, primaryKeyValue);
 String querySql1 = sqlBuilder.select(allSqlSelect).from(tableName).where(condition).build();
  1. 堆栈信息

  2. 测试涉及到的文件(注意脱密)

比如报错的Excel文件,有问题的图片等。

回答

8

没错啊,表达式的值被替换为?占位符,具体的值单独存储。

这是为了避免SQL注入。

你可以获取SqlBuilder#getParamValues方法获取参数列表。