2017-02-23 118 views
0

ПРИМЕЧАНИЕ. Я знаю, что могу исправить это с помощью сценариев или поля базы данных, но мне любопытно получить доступ к строке подключения.Spring Hibernate: определить, какое соединение с базой данных

У меня есть две тестовые среды. У каждой есть своя база данных, одна для китайского и одна для английских данных. В противном случае две базы данных идентичны.

Единственное отличие - это строка подключения в моем beans.xml (ctest vs ctestzh).

\t <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
 
\t \t destroy-method="close"> 
 
\t \t <property name="driverClass" value="org.postgresql.Driver" /> 
 
\t \t <property name="jdbcUrl" value="jdbc:postgresql://localhost/ctest?useUnicode=true&#38;characterEncoding=utf8" /> 
 
\t \t <property name="user" value="testuser" /> 
 
\t \t <property name="password" value="xxxx" /> 
 
.... 
 
\t </bean> 
 

 
\t <!-- Hibernate 
 
\t <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" 
 
\t \t destroy-method="close"> 
 
\t \t <property name="driverClass" value="org.postgresql.Driver" /> 
 
\t \t <property name="jdbcUrl" value="jdbc:postgresql://localhost/ctestzh?useUnicode=true&#38;characterEncoding=utf8" /> 
 
\t \t <property name="user" value="testuser" /> 
 
\t \t <property name="password" value="xxxx" /> 
 
..... 
 
\t </bean>-->

Я использую конфигурационный файл XML, который настраивает мое приложение либо процесс на английском или китайские данные. Если я забыл изменить beans.xml на соответствующие данные, однако, я повреждаю базу данных (т. Е. Помещаю китайские данные в английскую базу данных)

Могу ли я получить доступ к строке подключения в коде, чтобы я мог сбой, если я подключен к неправильной базе данных? Я посмотрел на SessionFactory, но ничего не увидел.

ответ

1
public String getConnectionString(DataSource dataSource) { 
    return dataSource.getConnection().getMetaData().getURL(); 
} 

См. DatabaseMetaData class для получения дополнительной информации.

 Смежные вопросы

  • Нет связанных вопросов^_^