Jboss AS 7.1.1访问/查询嵌入式H2数据库

时间:2015-08-25 21:27:32

标签: java jpa jboss jboss7.x h2

我试图访问我的嵌入式h2服务器并进行查询。我可以访问,但我创建的表格不会出现在Jboss H2工具上。

这是我的 persistence.xml

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
    version="2.1">
    <persistence-unit name="primary">
        <jta-data-source>java:jboss/datasources/xxxDS</jta-data-source>
        <properties>
            <!-- For auto create tables on startup -->
            <property name="hibernate.hbm2ddl.auto" value="create-drop" />
            <property name="hibernate.show_sql" value="false" />
        </properties>
    </persistence-unit>
</persistence>

XXX-ds.xml中

<?xml version="1.0" encoding="UTF-8"?>
<datasources xmlns="http://www.jboss.org/ironjacamar/schema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://www.jboss.org/ironjacamar/schema http://docs.jboss.org/ironjacamar/schema/datasources_1_0.xsd">

    <!--  start H2 DATABASE -->
    <datasource jndi-name="java:jboss/datasources/xxxDS"
        pool-name="xxx" enabled="true"
        use-java-context="true">
        <connection-url>jdbc:h2:mem:xxx;DB_CLOSE_ON_EXIT=FALSE;DB_CLOSE_DELAY=-1</connection-url>
        <driver>h2</driver>
        <security>
            <user-name>sa</user-name>
            <password>sa</password>
        </security>
    </datasource>
</datasources>

通过Jboss工具访问H2嵌入式数据库(请参阅图像上的测试成功): java -jar /opt/jboss/jboss-as-7.1.1.Final/modules/com/h2database/h2/main/h2-1.3.161.jar the screenshot

我可以连接,但是我看不到我在应用程序中创建的表格。我只看到h2系统表。 I cannot see my tables created

如何查看我的应用程序持久存在的表?

1 个答案:

答案 0 :(得分:2)

您正在使用内存数据库,因此从不同的JVM和类加载器环境访问将无法正常工作。

在使用Jboss 7时,您可以使用 h2console 快速入门查看数据库内容。 Here is the project,它构建了一个 war ,你必须在<jboss_home>/(domain|standalone)/deployments部署它。

另请注意,使用 hibernate.hbm2ddl.auto create-drop 选项将在取消部署应用程序时删除任何数据库对象。

如果您有机会更改h2数据库配置,可以设置服务器模式。请参阅this short tutorial以了解如何快速执行此操作:)