我會寫它,但是如果有一個準備好的,經過測試的代碼片段可以做到這一點,我會很樂意去偷它。解析來自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