0

別のデータベースを切り替えない場合、リモートデータベースへの接続が正しく確立されているかどうかを確認または知るにはどうすればよいですか。

private static SessionFactory configureSessionFactory(String name) throws HibernateException 
    {
        ServiceRegistry serviceRegistry;
        Configuration configuration = new Configuration();
        configuration.configure(name);
        serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry();
        SessionFactory factory;
        factory = configuration.buildSessionFactory(serviceRegistry);
        return factory;
    }

SessionFactory を構築するために使用している方法です。

これは私の設定です:

<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="hibernate.connection.driver_class">org.h2.Driver</property>
<property name="hibernate.connection.url">
    jdbc:h2:tcp://193.168.1.70/history
</property>
<property name="hibernate.connection.username">root</property>
<property name="hibernate.connection.password">root</property>
<property name="hibernate.connection.autocommit">true</property>
<property name="show_sql">false</property>
<property name="dialect">org.hibernate.dialect.H2Dialect</property>
<property name="hibernate.hbm2ddl.auto">update</property>
<!-- Mapping files -->
<mapping resource="PriceBar.hbm.xml"/>
</session-factory>
</hibernate-configuration>

DB に接続できますが、サーバーがダウンした場合に接続されているかどうかを判断するにはどうすればよいですか?

4

2 に答える 2

1
Session session = factory.openSession();
session.doWork(new Work() {
    @Override
    public void execute(Connection connection) throws SQLException {
        //You got a connection
    }
});
于 2015-03-18T06:56:49.907 に答える
0

試すことができる接続レベルのメソッド isValid() があります。

于 2013-07-31T08:29:17.373 に答える