数据库抽象

时间:2017-02-06 07:31:14

标签: java hibernate jdbc spring-data spring-jdbc

我需要在Java应用程序中对数据库进行某种抽象。我的mySQL数据库包含所有属性和内部应用程序数据,第二个数据库包含结果数据。我需要创建新表并填充它们。棘手的部分是每个应用程序实例的第二个DB可能不同,因此它可以是Oracle DB或postgreSQL。有没有人知道某种工具,它允许我编写一个版本的SQL,它会将它转换为DB的特定方言?休眠或弹簧数据可以帮助我吗? 谢谢你的回答

修改 我需要执行与任何对象无关的查询,只需创建具有动态生成名称的表

2 个答案:

答案 0 :(得分:-1)

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

答案 1 :(得分:-1)

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

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

  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