Как изменить объект источника данных на основе имени базы данных, определенного в applicationcontext.xml во время выполнения

#spring #hibernate

#spring #переход в спящий режим

Вопрос:

когда я обращаюсь к приложению, возможно ли передавать разные имена баз данных mysql в applicationcontext.xml компонент источника данных. В моем приложении я использую фреймворки spring и hibernate. пожалуйста, ответьте на мой вопрос.

Ответ №1:

1) Попробуйте сохранить всю информацию базы данных в файле свойств, например :

 jdbc.username = root
jdbc.password = letmein
jdbc.driver = com.mysql.jdbc.Driver
jdbc.url = jdbc:mysql://localhost:3306/database-url
  

и в файле xml :

 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"
    destroy-method="close">
    <property name="driverClassName" value="${jdbc.driver}"></property>
    <property name="url" value="${jdbc.url}"></property>
    <property name="password" value="${jdbc.password}"></property>
    <property name="username" value="${jdbc.username}"></property>
  

вы должны изменить jdbd.url при доступе к приложению, верно?

Я думаю, что с помощью InputStream вы можете импортировать файл на java и отредактировать свой файл свойств и изменить jdbc.url .

2) Вы также можете изменить URL-адрес с помощью метода setUrl(string s) и снова запустить метод setDataSource . Пожалуйста, смотрите здесь BasicDataSource