2017-02-23 14 views
0

注:これはスクリプトやデータベースフィールドを使って修正できますが、接続文字列にアクセスするのは不思議です。Spring Hibernate:どのデータベース接続を確認するか

私は2つのテスト環境を持っています。それぞれに独自のデータベースがあり、1つは中国語用、もう1つは英語データ用です。それ以外の場合、2つのデータベースは同じです。

唯一の違いは、beans.xml(ctestと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を参照してください。

関連する問題