独立于数据库的 Java 编程 - 有建议吗?

发布于 2024-12-03 07:12:45 字数 1536 浏览 2 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

末が日狂欢 2024-12-10 07:12:45

JPA 似乎成为您的最佳选择。它几乎开箱即用。将直接数据库处理抽象化,并且可以独立使用(无需应用程序服务器)。

JDBC 仍然是一个有效的选择,但使用它进行的开发并不像 JPA 那样与数据库无关(JPA 可以看作是 JDBC 上的抽象层)。

这里是一个很好的例子。

最流行的 JPA 实现是 HibernateEclipselink,其中 Eclipselink(以前的 TopLink)是参考实现。

JPA seems to be the optimal choice for you. It works almost-out-of-the-box. Abstracts the direct DB handling away and can be used standalone (without an application server).

JDBC is still a valid option but the development with it is not nearly as DB-agnostic as with JPA (which can be seen as an abstraction layer over JDBC).

Here is a nice example.

Most popular JPA implementations are Hibernate and Eclipselink with Eclipselink (former TopLink) being the reference implementation.

自我难过 2024-12-10 07:12:45

我会考虑 Hibernate 或其他 ORM 解决方案。

在最简单的情况下,您可以使用属性文件来交换数据库,而无需更改代码。如果您使用 Maven,您可能需要查看配置文件。

I would look at Hibernate or another ORM solution.

You can use property files to swap out the db without changes to the code in the simplest case. You may want to look at profiles if you are using Maven.

好久不见√ 2024-12-10 07:12:45

当 Hibernate 过于强大时,两个库可以提供帮助:

  1. 表维护 - CREATE、DELETE (DDL) - DDLUtils
  2. 创建 SQL 查询来检索信息 - JOOQ

Two libraries that can help, when Hibernate is an overkill:

  1. Table maintenance - CREATE,DELETE (DDL) - DDLUtils
  2. Creating the SQL queries to retrieve the information - JOOQ
溺ぐ爱和你が 2024-12-10 07:12:45

您应该开始寻找 Hibernate。这正是您正在寻找的。

You should start looking for Hibernate. This is exactly what you are searching for.

风尘浪孓 2024-12-10 07:12:45

你需要的是一个设计模式看看这个。
我认为这可能会有所帮助

核心 J2EE 模式 - 数据访问对象

what you need is a design pattern have a look at this.
I think it might help

Core J2EE Patterns - Data Access Object

凹づ凸ル 2024-12-10 07:12:45

如果您确实希望具有数据库独立性,请不要在代码中放置任何语句。相反,请将它们存储在外部文件中。

您可以使用 mysql.ddl 来启动。然后,如果您切换到 Oracle,您将使用与 mysql.ddl 相同的格式但具有不同的查询来创建 oracle.ddl

如果您的数据库访问是它自己的项目,那么这是可扩展的,因为现在与该数据库通信的其他应用程序也将能够利用您编写的现有 ddl 文件。

If you really want to have DB independence, don't put any statements in your code. Instead, store them in an external file.

You could have mysql.ddl to start. Then down the road, if you switch to oracle, you're make oracle.ddl with the same format as mysql.ddl but with different queries.

If your database access is its own project, this is extensible because now other applications that talk to this database also will be able to leverage the existing ddl file you wrote.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文