我有使用 Toplink 将对象转换为数据库的经验,反之亦然。但这都是 JSP 站点的一部分,现在我用它做了一些 EJB 的东西。现在是我的问题:在 Java 桌面应用程序中使用 Toplink 之类的东西好还是使用 Java 中的本机 sql 东西更常见?
也许是教授的一些经验。开发人员可能很好。我需要为客户开发一个认真的应用程序。我正在使用 Java 进行操作,并将数据存储在数据库中。
谢谢
如果你的数据模型结构良好,不太复杂,而且最重要的是,如果你可以控制它,那么 ORM 就很好。
遗留数据库或建模不佳的数据库更难用 ORM 表示,并且强烈建议不要这样做,因为您的应用程序会增加模型本身所暗示的复杂性。
如果您对某些 ORM 工具(例如 Hibernate)感到满意,并且您的数据库做得相当好,那就去吧。它们确实为您节省了大量样板代码,并在后台提供了一些不错的查询优化代码。否则,您可能希望直接使用 JDBC 或其他一些框架来简化 JDBC 的使用,但仍使用纯 SQL。对于这种情况,我推荐MyBatis。
TopLink(和 EclipseLink/JPA)在桌面应用程序中的工作与在服务器端应用程序中一样好。事实上,在服务器端流行之前,TopLink 早在 90 年代就已经有了客户端-服务器 Smalltalk 应用程序。
这取决于您的用例
ORM 技术可以很好地抽象出数据库细节并让您专注于领域模型。但是,在某些情况下使用 ORM 层是不合适的(非常大的数据集可能会导致性能问题,例如,难以映射到对象的数据库模式是另一种情况)。
我建议使用符合 JPA 的技术,例如 Hibernate。这样,您就可以使用实现 Java 标准的 ORM,并且您可以或多或少地换入和换出实现。
对于其他一切,JDBC 是一个灵活的朋友
也取决于数据库容量。对于具有大量数据的数据库,请尝试使用 hibernate。它可能比编写 JDBC 代码有很大帮助