Java hibernate动态数据库选择

时间:2013-06-25 15:03:34

标签: java spring hibernate database-connection

我有一个带有spring 3和hibernate框架的标准Web应用程序。 我有applicationContext.xml和hibernate.cfg.xml文件以及数据库连接数据:

<hibernate-configuration>
    <session-factory>
        <property name="hibernate.bytecode.use_reflection_optimizer">false</property>
        <property name="hibernate.cglib.use_reflection_optimizer">true</property>
        <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="hibernate.connection.password">password</property>
        <property name="hibernate.connection.release_mode">after_transaction</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost/webapp</property>
        <property name="hibernate.connection.username">webapp</property>
        <property name="hibernate.current_session_context_class">thread</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
        <property name="hibernate.search.autoregister_listeners">false</property>
        <property name="hibernate.show_sql">false</property>
        <property name="hibernate.transaction.factory_class">org.hibernate.transaction.JDBCTransactionFactory</property>
    </session-factory>
</hibernate-configuration>

...

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="com.mysql.jdbc.Driver" />
    <property name="url" value="jdbc:mysql://localhost/webapp" />
    <property name="username" value="webapp" />
    <property name="password" value="password" />
</bean>

现在我需要使用动态数据库名称更改此应用程序,如何在ServletContextListener.contextInitialized中设置运行时?

1 个答案:

答案 0 :(得分:0)

XML文件存储用于构建上下文的配置。找到构建上下文的位置,并将逻辑应用于动态数据库位置。没有魔力。