数据库抽象

Data base abstraction

我的 Java 应用程序中需要某种数据库抽象。我有 mySQL 数据库,其中包含所有属性和内部应用程序数据,第二个数据库用于结果数据。我需要创建新的 tables 并填充它们。棘手的部分是每个应用程序实例的第二个数据库可能不同,因此它可以是 Oracle 数据库或 postgreSQL。有谁知道某种工具可以让我编写一个版本的 SQL 并将其翻译成特定的 DB 方言?休眠或 spring 数据可以帮助我解决这个问题吗? 谢谢你的回答

编辑 我需要执行与任何对象无关的查询,只需使用动态生成的名称

创建 table

当然,hibernate 可以帮助您解决这个问题。最好的部分是您甚至不必编写 SQL 查询(HQL 或 Criteria 将完成您的工作)。唯一的问题是您在更改数据库实例时必须更改数据库详细信息(如驱动程序 class、用于建立连接的驱动程序和方言等)。

Hibernate(或任何其他 JPA[1] 实现)当然可以帮助您。 JPA 是一个 API,它允许您将 Java bean 映射到抽象逻辑中的数据库 table 行,其中 SQL 甚至可能根本不涉及。

JPA 有自己的 JPQL[2](一种 SQL-like,面向对象的查询语言),它将转换为您正在使用的实际数据库的特定方言;它有一个标准 API[3] 可以让您使用 type-safe 方法调用从数据库中查询和检索数据。

  1. https://en.wikibooks.org/wiki/Java_Persistence/What_is_JPA%3F
  2. https://en.wikipedia.org/wiki/Java_Persistence_Query_Language
  3. https://en.wikibooks.org/wiki/Java_Persistence/Criteria