我已经接管了一些使用CodeFutures中的Firestorm DAO代码生成器的代码。我相信这个许可证很快就会出现,并且想知道是否有人可以推荐任何替代方案,无论是否开源,这样我就可以了解那里有什么可以做出更好的决定。
答案 0 :(得分:2)
对于4月份的具体决定,这可能有点迟了,但如果您习惯使用Firestorm DAO,使用生成的代码来处理每个数据库实体,您可能会发现切换到jOOQ很容易。 jOOQ完全省略了“DAO层”,生成直接代表关系模型的类。这通常称为Active Record pattern。您可以使用jOOQ's built-in DSL直接从Java查询数据库,而不是编写DAO,类似于Microsoft的Linq
我同意JavadocMD,JPA(或Hibernate)是目前被认为是“最佳实践”的。但也许您不希望为well-known reasons ...
的应用程序添加对象关系映射答案 1 :(得分:1)
我强烈建议不关闭风暴。 Firestorm使得大约90%的用例编写DAO已成为过去。对于所有其他情况,只需使用继承的帮助器方法对firestorm创建的dao进行子类化,并为其添加所需的功能。您不需要许可证,您可以使用免费许可证。 不,我不是来自Firestorm,但Firestorm让我的项目离开了地面,节省了大约40%的时间。一旦我进入更复杂的查询,它将开始为我节省大约20%的开发时间,但是,嘿,它仍然比其他解决方案节省20%。此外,它转换为原始JDBC。当出现问题时,如果您熟悉ODBC / JDBC,则调试起来要容易得多。
答案 2 :(得分:0)
一种选择是完全改变方向,并使用像JPA这样的持久性框架。您可以创建Java对象模型,添加适当的注释,JPA可以为您处理其他所有内容,而不会产生任何混乱的生成代码。
当然,根据您的架构和业务情况的具体情况,这种变化可能对您不可行。但是,如果您可以管理它,JPA似乎更符合当前Java持久性的最佳实践。
我在生产环境中使用过OpenJPA:http://openjpa.apache.org/
我们考虑过TopLink(Oracle的实施),但遇到了一些我不记得的问题。 http://www.oracle.com/technology/products/ias/toplink/index.html