Hibernate: имитация эффекта опции testConnectionOnCheckout с помощью кода Java - PullRequest
0 голосов
/ 11 ноября 2011

Я использую веб-приложение, и иногда у меня возникают проблемы с подключением к MySql.Используя опции testConnectionOnCheckout и preferredTestQuery в файле конфигурации Hibernate, я решил проблему, и с моим приложением все в порядке.

Но для повышения производительности я хотел бы получить эффект от этой опциитолько когда конкретное событие происходит в моем приложении.Например:

try {
    ...........
}
catch(Exception e) {
    // java code to obtain the same effect as
    // testConnectionOnCheckout option with "Select 1" query
}

Какой код Java мне нужно использовать?

1 Ответ

0 голосов
/ 11 ноября 2011

Лучший способ ответить на такой вопрос - найти его в источнике. Поэтому я рекомендую вам получить исходный код Hibernate и найти код, который проверяет соединение.

но в любом случае, вот что-то простое

public static boolean checkConnection(String jdbcUrl, String user, String password){
    boolean result = false;
    try {
                Configuration config = new AnnotationConfiguration().configure();
                config.setProperty("hibernate.connection.url", jdbcUrl);
                config.setProperty("hibernate.connection.username", user);
                config.setProperty("hibernate.connection.password", password);
                sessionFactory = config.buildSessionFactory();
                Session session = sessionFactory.openSession();
                Assert.assertFalse(sesssion.connection.isReadOnly());
                result = true;
    } catch(Throwable ex) {
                return = false;
    }
    return result;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...