2008-08-28 21 views
6

我在一個Java應用程序中使用Hibernate來訪問我的數據庫,並且它在MS-SQL和MySQL中運行得非常好。但是,我必須在某些表單上顯示的一些數據必須來自文本文件,而通過文本文件我的意思是人類可讀文件,它們可以是CSV,Tab-Delimited,甚至每行一個鍵值對,我的數據就像這樣簡單,但我的偏好當然是XML文件。使用休眠來處理文本文件

我的問題是:我可以使用Hibernate使用HQL,Query,EntityManager和Hibernate提供的所有資源來讀取這些文件來訪問文件。我應該使用哪種文件格式以及如何配置我的persistence.xml文件以將文件識別爲表格?

回答

7

Hibernate是針對JDBC API編寫的。因此,您需要一個能夠處理您感興趣的文件格式的JDBC驅動程序。顯然,即使是隻讀訪問,這也不會很好,但如果不是高優先級,它可能仍然有用。在Windows系統上,可以爲分隔文本文件,Excel文件等設置ODBC數據源。然後,可以在Java應用程序中設置JdbcOdbcDriver以使用此數據源。

對於我工作的大多數應用程序,我不會考慮這種方法;我將使用導入/導出機制將真實數據庫(即使它是一個進程內數據庫,如Berkeley DB或Derby)轉換爲文本文件。是的,這是一個額外的步驟,但它可以是自動化的,性能不會比嘗試直接使用文本文件差得多(它可能會更好,總體而言),它會更強大,容易發展。

0

就像erickson說的那樣,你唯一的希望就是找到一個用於該任務的JDBC驅動程序。有可能適合任務的xlsql(CSV,XML和Excel驅動程序)。之後,您只需要找到或編寫適合您的驅動程序的最簡單的Hibernate方言。

+1

xlsql的更新鏈接是http://sourceforge.net/projects/xlsql/看起來像它自2004年以來在阿爾法。 – 2012-04-09 09:33:36