我在用 休眠 在 Java 应用程序中访问我的数据库,它与 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 驱动程序。也许有 sql语句 (CSV、XML 和 Excel 驱动程序)可以满足该任务。之后,您只需找到或编写适合您的驱动程序的最简单的 Hibernate Dialect。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top