2016-11-26 31 views
-2

我有一個帶有屬性student_idtotal_marks的標記表。這裏student_id是指學生表的主鍵。使用Java將MySQL表與Excel表進行比較

我有相同的標記表存儲爲Excel文件。

現在我想編寫一個Java程序來找出在MySQL數據庫和Excel文件中數據不匹配的學生。

+3

你能證明你已經試過了嗎? 你使用JDBC來查詢你的數據庫嗎?你只是從文件系統讀取excel文件。 Excel文件是否爲csv格式?你的java程序是一個簡單的命令行程序,還是它有一個用戶界面? – mangotang

+0

你知道如何在Java應用程序中使用JDBC訪問表嗎?你知道如何將Excel文件(csv格式)讀入Java應用程序嗎?如果沒有,我們有一些工作要做。 – mangotang

+0

我的java程序是一個簡單的命令行程序,沒有UI。 Excel文件採用.xlsx格式。我正在使用JDBC連接從數據庫讀取並從apache POI讀取excel文件。目前,我只與比較卡住了。 – Anil

回答

0

一個解決方案可能是: 查詢您的數據庫,並將表中的內容加載到HashMap中,其中HashMap中的鍵是表的主鍵。散列映射中的值是與主鍵關聯的行。

讀取您的excel文件,並將其加載到HashMap中,使用主鍵作爲散列表的鍵。散列表中的值是Excel文件中的對應行。

接下來,循環訪問第一個HashMap(來自數據庫)中的每個鍵,並使用該鍵訪問數據庫表的HashMap和Excel文件的Hashmap。比較這些鍵的值。此時,您應該能夠「標記」任何不匹配,也許可以將不匹配置於單獨的List或HashMap中。

+0

但是marks表中的student_id將有多個條目。在標記表中它是一個外鍵。 – Anil

+0

請張貼標記表格和excel電子表格的樣本,並在此上下文中定義「不匹配」的含義。 – mangotang