Java程序使用不同的关系数据库

时间:2013-10-31 23:11:17

标签: java mysql sql-server database oracle

我有一个普遍的问题。是否可以使用与用户指定的数据库类型一起使用的java程序,让我们说应用程序的设置。这意味着,根据运行应用程序的服务器以及运行的数据库服务器的类型,应用程序必须自行调整以运行其查询。
我是否必须为不同类型的数据库指定不同的查询?

1 个答案:

答案 0 :(得分:2)

有可能吗?肯定。

通常,如果您确实需要数据库独立性,那么您可以编写应用程序,利用独立于数据库的框架来处理持久化数据并从相关数据库中检索它。例如,像Hibernate这样的东西知道如何构造对Oracle有效的查询,以及如何生成对SQL Server,MySQL等做同样事情的不同查询。

当然,构建完全独立于数据库的应用程序会引入其他问题。例如,不同的数据库以不同的方式处理锁定 - SQL Server中的简单SELECT将锁定一行,而在Oracle中则不会这样做。这可能会导致应用程序的行为有所不同,具体取决于数据库。此外,完全独立于数据库的应用程序通常不会像利用特定数据库的独特功能的应用程序那样扩展 - 像Hibernate这样的框架不会生成对特定应用程序针对任何特定数据库最有效的SQL。当然,它会针对每个数据库生成通常合理的SQL,但是知道业务需求和特定数据库的人几乎肯定会做得更好。