0

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

4

1 回答 1

2

可能吗?当然。

一般来说,如果您真的需要数据库独立性,您会编写应用程序,利用独立于数据库的框架来处理持久数据并从相关数据库中检索数据。例如,像 Hibernate 这样的东西知道如何构建针对 Oracle 的查询,以及如何生成针对 SQL Server、MySQL 等执行相同操作的不同查询。

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

于 2013-10-31T23:20:11.520 回答