注意:我知道我可以使用脚本或数据库字段修复此问题,但我很想知道访问连接字符串。
我有两个测试环境。每个都有自己的数据库,一个用于中文,一个用于英文数据。否则两个数据库是相同的。
唯一的区别是我的beans.xml中的连接字符串(ctest vs ctestzh)。
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="org.postgresql.Driver" />
<property name="jdbcUrl" value="jdbc:postgresql://localhost/ctest?useUnicode=true&characterEncoding=utf8" />
<property name="user" value="testuser" />
<property name="password" value="xxxx" />
....
</bean>
<!-- Hibernate
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"
destroy-method="close">
<property name="driverClass" value="org.postgresql.Driver" />
<property name="jdbcUrl" value="jdbc:postgresql://localhost/ctestzh?useUnicode=true&characterEncoding=utf8" />
<property name="user" value="testuser" />
<property name="password" value="xxxx" />
.....
</bean>-->
&#13;
我使用xml配置文件来配置我的应用程序以处理英文或中文数据。但是,如果我忘记将beans.xml更改为适当的数据,我会破坏数据库(即将中文数据放入英文数据库)
我可以在代码中访问连接字符串,这样如果连接到错误的数据库,我就会失败吗?我查看了SessionFactory,但没有看到任何明显的结果。
答案 0 :(得分:1)
public String getConnectionString(DataSource dataSource) {
return dataSource.getConnection().getMetaData().getURL();
}
有关详细信息,请参阅DatabaseMetaData class。