2010-10-21 57 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()