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 中。你可以根据自己的需要进行调整和扩展。

Java 解析 SQL WHERE 条件并转为 Map

原文地址: https://www.cveoy.top/t/topic/qakm 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录