Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何使用hibernate设置H2服务器模式?_Java_Hibernate_H2 - Fatal编程技术网

Java 如何使用hibernate设置H2服务器模式?

Java 如何使用hibernate设置H2服务器模式?,java,hibernate,h2,Java,Hibernate,H2,我有一个maven项目,需要内存中的DB来存储数据过滤后的数据集,因为它只是一个ETL项目,所以它不使用spring/spring启动框架,所以使用hibernate来构建嵌入式H2。(教程) 它工作得很好,我可以对我的H2进行CRUD,但我不知道是否要使用远程spring引导项目连接到这个H2 DB,我应该设置什么 以下是我在maven项目中的文件: pom.xml 在SpringBoot项目中(我已经运行了db2.datasource.url=jdbc:h2:mem:test,它工作正常,所

我有一个maven项目,需要内存中的DB来存储数据过滤后的数据集,因为它只是一个ETL项目,所以它不使用spring/spring启动框架,所以使用hibernate来构建嵌入式H2。(教程) 它工作得很好,我可以对我的H2进行CRUD,但我不知道是否要使用远程spring引导项目连接到这个H2 DB,我应该设置什么

以下是我在maven项目中的文件: pom.xml

在SpringBoot项目中(我已经运行了
db2.datasource.url=jdbc:h2:mem:test
,它工作正常,所以我只粘贴属性代码): 应用程序属性

db2.datasource.driverClassName=org.h2.Driver
db2.datasource.url=jdbc:h2:tcp://10.250.31.42:9092/mem:test
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
db2.datasource.username=sa
db2.datasource.password=
有人能帮我解决这个问题吗? 谢谢 卡斯

<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <!-- JDBC Database connection settings -->
        <property name="connection.driver_class">org.h2.Driver</property>
        <property name="connection.url">jdbc:h2:mem:test;DB_CLOSE_DELAY=-1</property>
        <property name="connection.username">sa</property>
        <property name="connection.password"></property>
        <!-- JDBC connection pool settings ... using built-in test pool -->
        <property name="connection.pool_size">1</property>
        <property name="jdbc.fetch_size">10000</property>
        <property name="jdbc.batch_size">10000</property>
        <!-- Select our SQL dialect -->
        <property name="dialect">org.hibernate.dialect.H2Dialect</property>
        <!-- Echo the SQL to stdout -->
        <property name="show_sql">true</property>
        <!-- Set the current session context -->
        <property name="current_session_context_class">thread</property>
        <!-- Drop and re-create the database schema on startup -->
        <property name="hbm2ddl.auto">create-drop</property>
        <!-- dbcp connection pool configuration -->
        <property name="hibernate.dbcp.initialSize">5</property>
        <property name="hibernate.dbcp.maxTotal">20</property>
        <property name="hibernate.dbcp.maxIdle">10</property>
        <property name="hibernate.dbcp.minIdle">5</property>
        <property name="hibernate.dbcp.maxWaitMillis">-1</property>
        <mapping class="cic.cs.unb.ca.hibernate.entity.CICFlowMeterH2" />
    </session-factory>
</hibernate-configuration>
import org.h2.tools.Server;
import org.hibernate.SessionFactory;
import org.hibernate.boot.Metadata;
import org.hibernate.boot.MetadataSources;
import org.hibernate.boot.registry.StandardServiceRegistry;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

public class HibernateUtil {
    private static StandardServiceRegistry registry;
    private static SessionFactory sessionFactory;

    public static SessionFactory getSessionFactory() {
        if (sessionFactory == null) {
            try {
                Server webServer = Server.createWebServer("-web","-webAllowOthers","-webPort","8082").start();
                Server server = Server.createTcpServer("-tcp","-tcpAllowOthers","-tcpPort","9092").start();
                // Create registry
                registry = new StandardServiceRegistryBuilder().configure().build();

                // Create MetadataSources
                MetadataSources sources = new MetadataSources(registry);

                // Create Metadata
                Metadata metadata = sources.getMetadataBuilder().build();

                // Create SessionFactory
                sessionFactory = metadata.getSessionFactoryBuilder().build();

            } catch (Exception e) {
                e.printStackTrace();
                if (registry != null) {
                    StandardServiceRegistryBuilder.destroy(registry);
                }
            }
        }
        return sessionFactory;
    }

    public static void shutdown() {
        if (registry != null) {
            StandardServiceRegistryBuilder.destroy(registry);
        }
    }
}
db2.datasource.driverClassName=org.h2.Driver
db2.datasource.url=jdbc:h2:tcp://10.250.31.42:9092/mem:test
spring.h2.console.enabled=true
spring.h2.console.path=/h2-console
db2.datasource.username=sa
db2.datasource.password=