从java中的sql insert语句中提取值

时间:2014-05-26 09:09:17

标签: java sql split

我如何从sql insert语句中提取值:

例如:

INSERT INTO `mtable` VALUES (639383,-216,-398,1,174431,'test , test',1239629);

我尝试使用split with(,)但问题是值是否包含(,)字符

line = line.trim().replace("INSERT INTO `mtable` VALUES (", "").replace(");", "");
String []vals = line.split(",");

我需要这样的价值观:

639383
-216
398
1
174431
test , test
239629

2 个答案:

答案 0 :(得分:0)

String a = line.trim().substring("(",")");
String[] b =a.spilt(",");

答案 1 :(得分:0)

你可以尝试这个解决方案,它不是完全证明,并且会在当前形状的角落条件下中断,你可以根据你的使用情况加强它:

    String s = "INSERT INTO `mtable` VALUES (639383,-216,-398,1,174431,'test , test',1239629);";

    s = s.replaceAll(".*\\((.*)\\);", "$1");

    String[] strs = s.split("'");

    for (String string : strs) {
        if(string.endsWith(",") || string.startsWith(",")) {
            String[] splits = string.split(",");
            for (String string2 : splits) {
                if(string2!=null && string2.trim().length()!=0) {
                    System.out.println(string2);
                }
            }
        } else {
            System.out.println(string);
        }
    }

这是输出:

639383
-216
-398
1
174431
test , test
1239629

希望这有帮助。