2010-10-21 56 views
-1

我会写它,但是如果有一个准备好的,经过测试的代码片段可以做到这一点,我会很乐意去偷它。解析来自Java的mysql输出的代码片段

COUNT(*) SUM(cnt) 
0 1 

编辑 - 谢谢你的票关闭,我总能在堆栈溢出的好灵魂计数动作要快结束投票。我会为这个问题添加一些细节。

我在寻找一个java代码片断,它可以解析运行“mysql”可执行文件的输出。上面的代码片段是我想解析的这种输出的一个例子。

+0

WTF?你能改变你的答案吗? – 2010-10-21 12:06:01

+0

我不明白这个问题,如果有的话。 – Shikiryu 2010-10-21 12:08:17

+0

@精英绅士@Chouchenos - 编辑了这个问题。 – ripper234 2010-10-21 12:25:12

回答

1

是的,它叫做JDBC。你可以找到MySql JDBC driver here

+0

我在这里特别想要的是不是通过JDBC运行查询,而是解析由独立mysql客户端运行的查询。我有我的理由(不是很有趣),但我承认他们并不特别强。我可能会切换到JDBC。 – ripper234 2010-10-21 12:28:14

0

我最终为我的需要写了一个特定的片段。我只需要支持特定的查询,所以我没有为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()