【问题标题】:Java, Code Generation, and Persistence FrameworksJava、代码生成和持久性框架
【发布时间】:2009-04-18 20:15:47
【问题描述】:

有没有 Java 代码生成持久性框架? “数据库优先”而不是对象模型优先的东西? 我知道这在 Java 世界中可能是异端邪说,我只是想知道是否存在这样的框架。

这些天我更像是一个 .NET 人。因此,想到了 .NET 端的工具,例如 .NET 层或 CSLA。

【问题讨论】:

    标签: java database persistence orm


    【解决方案1】:

    当然,例如 hibernate 和 netbeans 可以对数据库进行逆向工程。你可能想看看:

    • Hibernate Tools;网站维护中
    • netbeans,使用最新版本的 netbeans,您可以从 JDBC 连接创建 JPA 实体

    我的 2 美分。

    【讨论】:

    • MyEclipse 内置了 Hibernate 逆向工程功能。可能是一个快速入门的方法。
    【解决方案2】:

    Apache Cayenne ORM 框架能够对数据库进行逆向工程。见here。

    【讨论】:

      【解决方案3】:

      我开发了jOOQ 来完全满足您的需求 - 所以不要担心异端:-)

      查看examples page 或article on dzone,说明我创建这样一个框架的动机。主要优点是:

      • 生成源代码
      • 通过在 Java 中提供类似 SQL 的 DSL,它与 SQL 保持接近
      • 它支持轻松访问特定于供应商的功能,例如 UDT、存储过程
      • 它支持所有高级 SQL 功能,例如 UNION、嵌套 SELECT、别名等

      请注意,jOOQ 不是真正的 OR-mapper。它专注于您的 RDBMS 中的关系数据模型,并没有让您像 Hibernate 或 JPA 那样创建自定义的面向对象的域模型。这正是您提到自己的原因:Something that is "database first" rather than object model first

      【讨论】:

        【解决方案4】:

        结帐EclipseLink项目(eclipse插件),你可以generate数据库表中的JPA模型

        【讨论】:

          【解决方案5】:

          DB Importer 是一个从数据库生成 JPA 类的 Eclipse 插件。

          免责声明:我是 DB Importer 的创建者。

          【讨论】:

          • 无效链接,返回 404
          【解决方案6】:

          Telosys Tools 是一款免费的“数据库优先”代码生成器

          见:https://sites.google.com/site/telosystools/

          它是一个 Eclipse 插件,如果需要可以自定义模板

          它可以生成持久层(JPA),也可以生成 CRUD 屏幕 (教程在这里:https://sites.google.com/site/telosystutorial/)

          【讨论】:

            【解决方案7】:

            许多基于 Java 的持久性工具都包含基于现有模式生成代码的工具。 Netbeans 将生成 JPA(如果需要,包括会话 bean 外观)。同样,JBoss Tools for Eclipse 将根据现有模式为您生成 Hibernate JavaBeans。

            【讨论】:

              【解决方案8】:

              我会推荐HiberObjects。它是一个 Eclipse 插件,可用于对持久对象建模或对现有数据库进行逆向工程。它让您设置unit tests 的方式真的很棒。您还可以修改例如 DAO 类的生成方式:只需修改 Groovy 脚本,所有 DAO 类都会重新生成。我遇到了一些错误,但它背后的人反应迅速,并在短时间内发布了修复程序。在Eclipse Plugin Central 可以找到描述和用户评分/cmets。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2015-09-07
                • 1970-01-01
                • 2011-07-03
                • 1970-01-01
                • 2011-05-31
                • 2012-04-15
                • 1970-01-01
                • 2011-08-03
                相关资源
                最近更新 更多