自动生成 Daos 的工具
Posted
技术标签:
【中文标题】自动生成 Daos 的工具【英文标题】:Tools to automatically generate Daos 【发布时间】:2011-03-24 14:27:22 【问题描述】:我对 Spring/JPA 等不感兴趣。我喜欢直接 JDBC/ODBC。
我想知道有哪些好的(实际上是生产就绪的)工具可以获取数据库模式并生成获取/更新它们的对象/daos?我对Java和C++很感兴趣。 我有兴趣在 C++ 上增加更多,以便摆脱所有这些 Spring/Maven/Hibernate 的疯狂并停止抽象抽象。我想深入了解代码。我喜欢如何调查生成的 JDBC dao 并了解我的特定事务隔离级别发生了什么。我喜欢实际上能够调试棘手的死锁,因为我可以理解简单的 JDBC 代码。除此之外,我只是在寻找一些用于 Java/C++ 的优秀代码生成工具,这些工具可以制作高质量的 Daos。
这是一个很棒的工具,但它只适用于 java。 http://www.codefutures.com/products/firestorm/
顺便说一句,为什么 Dao/POJO/POCO 模型在 C++ 世界中如此盛行。它使理解代码变得更加容易!
【问题讨论】:
【参考方案1】:您可以尝试使用 Telosys 代码生成器和 native JDBC DAO 的模板。 使用简单,一切免费。
它适用于现有的数据库或简单的文本模型。 目前模板主要针对 Java、Python 和 javascript,但您可以自定义现有模板以生成 C/C++ DAO。
见http://www.telosys.org
GitHub 上提供的 JDBC DAO 模板:https://github.com/telosys-templates-v3
【讨论】:
【参考方案2】:在我们的旧应用程序中,我们使用一组脚本转储 mysql 数据库并使用模式作为(模板化)POJO 的输入。然而,这在很大程度上取决于数据库。
对我来说,使用 Hibernate 之类的工具的优势在于开发人员与数据库的松散耦合。你不需要知道所有的数据库方言;休眠可以。这很方便,因为生产服务器运行 DB2、Oracle 或 MySQL,而我们的 Junit 测试使用具有不同语法的 SQLite。
Hibernate 在日志文件中也有出色的调试工具,所以我真的不觉得不理解会发生什么的痛苦:) 但是我们托管的 EJB2 应用程序 很痛苦 :(
【讨论】:
【参考方案3】:为什么所有的绒毛?您可以在运行时根据表元信息将 ResultSet 转换为 Map,反之亦然。简单,简单。
当您需要扩展时,专用引擎的优势首先会显现出来,因此请保持简单,如果需要,以后可以更改。
【讨论】:
以上是关于自动生成 Daos 的工具的主要内容,如果未能解决你的问题,请参考以下文章
实现 BaseDao 的多个 Daos 的存储库类委托 - 可能吗?