Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (For simplicity sake,
- domain : localhost:8080 ---> hem1 DB
- domain : 127.0.0.1:8080 ---> hem2 DB
- )
- public class MyRoutingDataSource extends AbstractRoutingDataSource{
- @Override
- protected Object determineCurrentLookupKey() {
- /*
- * this is derived from threadlocal set by filter for each web
- * request
- */
- return SessionUtil.getDB();
- }
- }
- package com.hemant.basic.dataSource;
- import java.beans.PropertyVetoException;
- import java.util.HashMap;
- import java.util.Map;
- import javax.naming.ConfigurationException;
- import javax.sql.DataSource;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import com.mchange.v2.c3p0.ComboPooledDataSource;
- @Configuration
- public class DBConfig {
- @Bean(name = "dataSource")
- public DataSource dataSource() throws PropertyVetoException,
- ConfigurationException {
- MyRoutingDataSource routingDB = new MyRoutingDataSource();
- Map<Object, Object> targetDataSources = datasourceList();
- // hem1 is the default target DB
- routingDB.setDefaultTargetDataSource(targetDataSources.get(1));
- routingDB.setTargetDataSources(targetDataSources);
- routingDB.afterPropertiesSet();
- return routingDB;
- }
- private Map<Object, Object> datasourceList() throws PropertyVetoException,
- ConfigurationException {
- final Map<Object, Object> datasources = new HashMap<Object, Object>();
- ComboPooledDataSource datasource = null;
- for (int id = 1; id <= 2; id++) {
- datasource = getDatasource(id);
- datasources.put(id, datasource);
- }
- return datasources;
- }
- private ComboPooledDataSource getDatasource(int id)
- throws PropertyVetoException, ConfigurationException {
- ComboPooledDataSource datasource = new ComboPooledDataSource();
- // set the connection pool properties
- datasource.setJdbcUrl("jdbc:postgresql://localhost/hem" + id);
- datasource.setUser("hemant");
- datasource.setPassword("");
- datasource.setDriverClass("org.postgresql.Driver");
- datasource.setMaxPoolSize(30);
- datasource.setInitialPoolSize(10);
- datasource.setMinPoolSize(10);
- return datasource;
- }
- }
- # Hibernate ddl auto (create, create-drop, update)
- spring.jpa.hibernate.ddl-auto = update
- [main] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000228: Running hbm2ddl schema update
- [main] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000102: Fetching database metadata
- [main] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000396: Updating schema
- [main] java.sql.DatabaseMetaData : HHH000262: Table not found: users
- [main] java.sql.DatabaseMetaData : HHH000262: Table not found: users
- [main] java.sql.DatabaseMetaData : HHH000262: Table not found: users
- [main] org.hibernate.tool.hbm2ddl.SchemaUpdate : HHH000232: Schema update complete`enter code here`
Add Comment
Please, Sign In to add comment