Java Hibernate模式生成是否可以用于在没有数据库连接的情况下生成DDL

Java Hibernate模式生成是否可以用于在没有数据库连接的情况下生成DDL,java,database,oracle,hibernate,ddl,Java,Database,Oracle,Hibernate,Ddl,我想使用Hibernate的模式生成为我无法直接从PC访问的数据库生成DDL,只需使用Hibernate配置文件即可。如果可能的话,我想跳过本地oracle数据库的安装。hibernate是否可以为适当方言、版本等的“理论”数据库生成DDL,或者这是一个白日梦 还有其他工具可以做到这一点吗 你可以使用 hibernate.hbm2ddl.auto=“更新” 或者,您可以从Maven使用hibernatetool生成DDL: <plugin> <groupId>or

我想使用Hibernate的模式生成为我无法直接从PC访问的数据库生成DDL,只需使用Hibernate配置文件即可。如果可能的话,我想跳过本地oracle数据库的安装。hibernate是否可以为适当方言、版本等的“理论”数据库生成DDL,或者这是一个白日梦

还有其他工具可以做到这一点吗

  • 你可以使用

    hibernate.hbm2ddl.auto=“更新”

  • 或者,您可以从
    Maven
    使用
    hibernatetool
    生成DDL:

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
            <execution>
                <id>generate-test-sql-scripts</id>
                <phase>generate-test-resources</phase>
                <goals>
                    <goal>run</goal>
                </goals>
                <configuration>
                    <tasks>
                        <property name="maven_test_classpath" refid="maven.test.classpath"/>
                        <path id="hibernate_tools_path">
                            <pathelement path="${maven_test_classpath}"/>
                        </path>
                        <property name="hibernate_tools_classpath" refid="hibernate_tools_path"/>
                        <taskdef name="hibernatetool"
                                 classname="org.hibernate.tool.ant.HibernateToolTask"/>
                        <mkdir dir="${project.build.directory}/test-classes/hsqldb"/>
                        <hibernatetool destdir="${project.build.directory}/test-classes/hsqldb">
                            <classpath refid="hibernate_tools_path"/>
                            <jpaconfiguration persistenceunit="testPersistenceUnit"
                                              propertyfile="src/test/resources/META-INF/spring/jdbc.properties"/>
                            <hbm2ddl drop="false" create="true" export="false"
                                     outputfilename="create_db.sql"
                                     delimiter=";" format="true"/>
                            <hbm2ddl drop="true" create="false" export="false"
                                     outputfilename="drop_db.sql"
                                     delimiter=";" format="true"/>
                        </hibernatetool>
                    </tasks>
                </configuration>
            </execution>
        </executions>
    </plugin>
    
    
    org.apache.maven.plugins
    maven antrun插件
    生成测试sql脚本
    生成测试资源
    跑
    
    Maven
    插件将生成以下DDL文件:

    • create_db.sql(包含用于创建数据库的所有DDL语句)
    • drop_db.sql(包含用于删除数据库的所有DDL语句)

  • 从hibernate tools 5.3开始,您还可以使用集成的。在那里你还可以找到关于如何使用它的文档

    不幸的是,maven站点还没有发布详细的参数/目标描述,但有一个稍旧的版本可用


    将有一个PR()允许生成站点。。。不幸的是,它还没有找到自己的路。

    如果你有将Spring与hibernate结合使用的规定,那么Spring3支持嵌入式Java数据库引擎。嵌入式数据库,如HSQL、H2或Derby。有关详细信息,这听起来很酷-但我需要Oracle。不安装Oracle。我认为这是不可能的。Oracle Database XE是一个入门级,占用空间小,易于安装&它是免费的。您可以轻松地使用它。什么是
    ?这是测试类路径的路径,这样您就可以让Ant任务访问Maven测试阶段定义的相同库。