我会写它,但是如果有一个准备好的,经过测试的代码片段可以做到这一点,我会很乐意去偷它。解析来自Java的mysql输出的代码片段
COUNT(*) SUM(cnt)
0 1
编辑 - 谢谢你的票关闭,我总能在堆栈溢出的好灵魂计数动作要快结束投票。我会为这个问题添加一些细节。
我在寻找一个java代码片断,它可以解析运行“mysql”可执行文件的输出。上面的代码片段是我想解析的这种输出的一个例子。
我会写它,但是如果有一个准备好的,经过测试的代码片段可以做到这一点,我会很乐意去偷它。解析来自Java的mysql输出的代码片段
COUNT(*) SUM(cnt)
0 1
编辑 - 谢谢你的票关闭,我总能在堆栈溢出的好灵魂计数动作要快结束投票。我会为这个问题添加一些细节。
我在寻找一个java代码片断,它可以解析运行“mysql”可执行文件的输出。上面的代码片段是我想解析的这种输出的一个例子。
这很接近于使用java.util.Scanner
进行解析。
是的,它叫做JDBC。你可以找到MySql JDBC driver here。
我在这里特别想要的是不是通过JDBC运行查询,而是解析由独立mysql客户端运行的查询。我有我的理由(不是很有趣),但我承认他们并不特别强。我可能会切换到JDBC。 – ripper234 2010-10-21 12:28:14
我最终为我的需要写了一个特定的片段。我只需要支持特定的查询,所以我没有为mysql输出编写通用的解析器。这里是我的代码,无论如何:
String[] lines = sqlOutput.toLowerCase().split("\n");
if (lines.length != 2) {
throw new Exception("Failed to parse, bad header line");
}
String headers = lines[0];
String body = lines[1];
if (!headers.startsWith("count(*)"))
throw new Exception("Query output must start with 'count(*)'")
Scanner scanner = new Scanner(body);
return scanner.nextInt()
WTF?你能改变你的答案吗? – 2010-10-21 12:06:01
我不明白这个问题,如果有的话。 – Shikiryu 2010-10-21 12:08:17
@精英绅士@Chouchenos - 编辑了这个问题。 – ripper234 2010-10-21 12:25:12