使用Hibernate处理文本文件

时间:2020-03-05 18:44:41  来源:igfitidea点击:

我正在Java应用程序中使用Hibernate来访问我的数据库,它与MS-SQL和MySQL配合得很好。但是我必须以某种形式显示的某些数据必须来自文本文件,对于文本文件,我的意思是人类可读文件,它们可以是CSV,制表符分隔甚至是键,值对,每行,因为我的数据就这么简单,但是我的首选当然是XML文件。

我的问题是:我可以使用Hibernate通过HQL,Query,EntityManager和所有那些资源来读取那些文件吗?Hibernate提供了我访问文件的权限。我应该使用哪种文件格式,以及如何配置persistence.xml文件以将文件识别为表?

解决方案

回答

Hibernate是针对JDBC API编写的。因此,我们需要一个与我们感兴趣的文件格式配合使用的JDBC驱动程序。显然,即使对于只读访问,这也不能很好地执行,但是如果优先级不高,它可能仍然有用。在Windows系统上,可以为定界文本文件,Excel文件等设置ODBC数据源。然后,可以在Java应用程序中设置JdbcOdbcDriver来使用此数据源。

对于我从事的大多数应用程序,我不会考虑这种方法。我将使用导入/导出机制将真实数据库(即使是像Berkeley DB或者Derby这样的进程内数据库)转换为文本文件。是的,这是一个额外的步骤,但是它可以自动化,并且性能不会比尝试直接使用文本文件差很多(总体上可能会更好),并且它会更健壮和易于开发。

回答

就像erickson所说的那样,我们唯一的希望是为该任务找到一个JDBC驱动程序。可能有xlsql(CSV,XML和Excel驱动程序)可以满足此任务。之后,我们只需要查找或者编写适合驱动程序的最简单的休眠方言即可。

回答

一个快速的谷歌想出了

  • CSV文件的JDBC驱动程序
  • XML文件的JDBC驱动程序

希望这可以提供一些启发?