
搜索输入 1 自动加上引号 修改 Dbeaver源码
找到源码包 plugins org.jkiss.dbeaver.ui.editors.data
ResultSetFilterPanel 文件
加上
java
private static final Pattern SIMPLE_EQUALS_FILTER_PATTERN = Pattern.compile("^(\\s*.+?\\s*=\\s*)(\\S+)(\\s*)$");
@NotNull
private String autoQuoteFilterCondition(@NotNull DBCExecutionContext context, @NotNull String condition) {
Matcher matcher = SIMPLE_EQUALS_FILTER_PATTERN.matcher(condition);
if (!matcher.matches()) {
return condition;
}
String leftPart = matcher.group(1).trim();
if (leftPart.endsWith(">") || leftPart.endsWith("<") || leftPart.endsWith("!")) {
return condition;
}
String value = matcher.group(2);
if (value.startsWith("'") || value.startsWith("\"") || value.startsWith(":") || value.startsWith("?")) {
return condition;
}
if (value.indexOf('(') >= 0 || value.indexOf(')') >= 0) {
return condition;
}
if (SQLConstants.KEYWORD_NULL.equalsIgnoreCase(value) || "true".equalsIgnoreCase(value) || "false".equalsIgnoreCase(value)) {
return condition;
}
return matcher.group(1) + context.getDataSource().getSQLDialect().getQuotedString(value) + matcher.group(3);
}
在 setCustomDataFilter 方法里面调用
String condition = autoQuoteFilterCondition(context, filtersText.getText());
简单编译 Dbeaver源码
下载特定eclipse版本 https://archive.eclipse.org/technology/epp/downloads/release/2025-03/R/eclipse-committers-2025-03-R-win32-x86_64.zip
导入项目 必须用:Projects from Folder or Archive
配置Target Platform 导入 自身项目文件夹作为新的 target 并把 eclipse_home 的一并加入
注意我编译好的jar文件版本是 DBeaver 23.3.2