Intellij idea IntelliJ使用String.format注入语言

Intellij idea IntelliJ使用String.format注入语言,intellij-idea,Intellij Idea,我有一个SQL查询,不幸的是它不能作为预处理语句编写,因为它有可变的列名。因此,我必须使用字符串格式构建SQL。我使用的语言是PostgreSQL,但因为我的查询中有String.format,IntelliJ抱怨代码中的语法错误 公共类示例{ 公共字符串getUniqueFeatureCountSqlQuery(字符串功能,长源用户ID){ //语言=PostgreSQL 返回String.format(“从userComments组中选择计数(不同的targetUserId),%s,其中us

我有一个SQL查询,不幸的是它不能作为预处理语句编写,因为它有可变的列名。因此,我必须使用字符串格式构建SQL。我使用的语言是PostgreSQL,但因为我的查询中有String.format,IntelliJ抱怨代码中的语法错误

公共类示例{
公共字符串getUniqueFeatureCountSqlQuery(字符串功能,长源用户ID){
//语言=PostgreSQL
返回String.format(“从userComments组中选择计数(不同的targetUserId),%s,其中userId=%d”,
功能,功能,sourceUserId);
}
}


如何使IntelliJ正确识别此字符串?它应该知道是PostgreSQL首先通过String.format格式化。

多亏了@WillHumphreys,我通过找到了一个解决方案

您必须转到“工具”->“数据库”->“用户参数”下的“用户参数设置”,或使用“查找操作”命令

然后做这些改变


您可能还必须使用参数索引字符串格式表示法(
string.format(“选择%1s…”,…)
),以便在控制台中尝试alt-enter并运行查询时能够区分参数。

变量列名是什么意思?这些名字在我看来是硬编码的。这不会让你容易受到SQL注入的攻击吗?@TimBiegeleisen我错了。我编辑了我的问题,所以现在应该更清楚了。假设“功能”已经被清除。它似乎与这个修复错误有关,但我无法让它工作。