【问题标题】:recommendations for firestorm dao replacementfirestorm dao替换的建议
【发布时间】:2011-02-04 11:29:00
【问题描述】:

我已经接管了一些一直在使用 CodeFutures 的 Firestorm DAO 代码生成器的代码。我相信这个许可证很快就会到期,我想知道是否有人可以推荐任何替代方案,无论是否开源,这样我就可以了解有什么可以更好地做出决定。

【问题讨论】:

    标签: java code-generation data-access-layer


    【解决方案1】:

    这对于您在 4 月份的具体决定可能有点晚,但如果您习惯于 Firestorm DAO,为每个数据库实体使用生成的代码,您可能会发现切换到 jOOQ 很容易。 jOOQ 完全省略了“DAO 层”,生成直接代表关系模型的类。这通常称为Active Record pattern。无需编写 DAO,您可以使用 jOOQ's built-in DSL 直接从 Java 查询数据库,类似于 Microsoft 的 Linq

    我同意JavadocMD 的观点,即 JPA(或 Hibernate)是目前被认为是“最佳实践”的方法。但也许您不想为 well-known reasons 添加对象关系映射到您的应用程序...

    【讨论】:

      【解决方案2】:

      我强烈建议不要关闭firestorm。对于大约 90% 的用例,Firestorm 使编写 DAO 成为过去。对于所有其他情况,只需将 firestorm 制作的 dao 子类化并使用继承的辅助方法向其添加您想要的功能。您不需要许可证,您可以使用免费许可证。 不,我不是来自 Firestorm,但 Firestorm 帮助我完成了我的项目,节省了大约 40% 的时间。一旦我进入更复杂的查询,它将开始为我节省大约 20% 的开发时间,但是嘿,它仍然比其他解决方案节省 20%。此外,它还转换为原始 JDBC。当出现问题时,如果您熟悉 ODBC/JDBC,调试起来会容易得多。

      【讨论】:

        【解决方案3】:

        一种选择是完全改变方向并使用像 JPA 这样的持久性框架。您创建自己的 Java 对象模型,添加适当的注解,然后 JPA 会为您处理所有其他事情,而不会生成任何杂乱的代码。

        当然,根据您的架构和业务情况的具体情况,这种更改可能不适合您。但是,如果您可以管理它,JPA 似乎更符合当前 Java 持久性的最佳实践。

        我在生产环境中使用过 OpenJPA:http://openjpa.apache.org/

        我们考虑了 TopLink(Oracle 的实现),但遇到了一些我不记得的问题。 http://www.oracle.com/technology/products/ias/toplink/index.html

        【讨论】:

        • 基本上我们决定分离我们现在拥有的当前 dao 代码,因为它已经存在并且可以使用,并使用 hibernate 进行任何新的开发。
        • 重写整个事情的明智选择。祝你好运!
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-12-24
        • 1970-01-01
        • 2021-06-29
        • 1970-01-01
        • 2018-02-09
        • 2020-07-15
        • 2022-11-16
        相关资源
        最近更新 更多