Java 解析 SQL WHERE 条件并转为 Map
Java 解析 SQL WHERE 条件并转为 Map
要获取 SQL 语句中 WHERE 条件的值并转为 Map,可以使用正则表达式匹配 WHERE 条件中的字段和值,然后将它们存储到 Map 中。
以下是一个示例代码:
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class SqlWhereConditionParser {
public static Map<String, String> parseWhereCondition(String sql) {
Map<String, String> whereMap = new HashMap<>();
// 正则表达式匹配where条件中的字段和值
Pattern pattern = Pattern.compile("\\b(\\w+)\\s*=\\s*'([^']*)'|" + "\\b(\\w+)\\s*=\\s*(\\d+)");
Matcher matcher = pattern.matcher(sql);
// 提取匹配结果并存储到map中
while (matcher.find()) {
String fieldName = matcher.group(1) != null ? matcher.group(1) : matcher.group(3);
String value = matcher.group(2) != null ? matcher.group(2) : matcher.group(4);
whereMap.put(fieldName, value);
}
return whereMap;
}
public static void main(String[] args) {
String sql = "SELECT * FROM table WHERE id = 1 AND name = 'John'";
Map<String, String> whereMap = parseWhereCondition(sql);
// 输出map中的键值对
for (Map.Entry<String, String> entry : whereMap.entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}
}
}
输出结果:
id = 1
name = John
上述代码使用了正则表达式来匹配 WHERE 条件中的字段和值,然后将它们存储到一个 HashMap 中。你可以根据自己的需要进行调整和扩展。
原文地址: https://www.cveoy.top/t/topic/qakm 著作权归作者所有。请勿转载和采集!