You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

156 lines
6.2 KiB

package com.gcc.erppostdata.config;
import jakarta.persistence.EntityManagerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
import org.springframework.jdbc.datasource.DriverManagerDataSource;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import javax.sql.DataSource;
@Configuration
@EnableTransactionManagement
public class DatabaseConfig {
@Autowired
private AppConfig appConfig;
// String chDb="communityhall_live";//communityhall_live
// String petDb="gcc_pets";
//
// String mulPDb="coworkspace";
// String swimDb="swimtesting";
//
// String userName="root";
// String password="root";
// String chDb= appConfig.getCmhDb();
// String petDb= appConfig.getPetDb();
//
// String userName= appConfig.getUsername();
// String password= appConfig.getPassword();
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
basePackages = "com.gcc.erppostdata.petregistration",
entityManagerFactoryRef = "petEntityManagerFactory",
transactionManagerRef = "petTransactionManager"
)
public class MysqlpetDataSourceConfig {
// String petDb="gcc_pets";
@Primary
@Bean(name = "mysqlPetRegistrationDataSource")
public DataSource mysqlPetRegistrationDataSource() {
System.out.println("AppConfig :---"+appConfig.getPetDb());
return DataSourceBuilder.create()
.url("jdbc:mysql://localhost:3306/"+appConfig.getPetDb())
.username(appConfig.getUsername())
.password(appConfig.getPassword())
.driverClassName("com.mysql.cj.jdbc.Driver")
.build();
}
@Primary
@Bean(name = "petEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean petEntityManagerFactory(
EntityManagerFactoryBuilder builder,
DataSource mysqlPetRegistrationDataSource) {
return builder
.dataSource(mysqlPetRegistrationDataSource)
.packages("com.gcc.erppostdata.petregistration")
.persistenceUnit("petPU")
.build();
}
@Primary
@Bean(name = "petTransactionManager")
public PlatformTransactionManager petTransactionManager(
EntityManagerFactory petEntityManagerFactory) {
return new JpaTransactionManager(petEntityManagerFactory);
}
}
@Configuration
@EnableTransactionManagement
@EnableJpaRepositories(
basePackages = "com.gcc.erppostdata.communityhall",
entityManagerFactoryRef = "chEntityManagerFactory",
transactionManagerRef = "chTransactionManager"
)
public class MysqlchDataSourceConfig {
@Bean(name = "mysqlCommunityHallDataSource")
public DataSource mysqlCommunityHallDataSource() {
System.out.println("User Name:- "+appConfig.getUsername());
System.out.println("Password :- "+appConfig.getPassword());
return DataSourceBuilder.create()
.url("jdbc:mysql://localhost:3306/"+appConfig.getCmhDb())
.username(appConfig.getUsername())
.password(appConfig.getPassword())
.driverClassName("com.mysql.cj.jdbc.Driver")
.build();
}
@Bean(name = "chEntityManagerFactory")
public LocalContainerEntityManagerFactoryBean chEntityManagerFactory(
EntityManagerFactoryBuilder builder,
@Qualifier("mysqlCommunityHallDataSource") DataSource dataSource) {
return builder
.dataSource(dataSource)
.packages("com.gcc.erppostdata.communityhall") // Package containing Community Hall entities
.persistenceUnit("chPU")
.build();
}
@Bean(name = "chTransactionManager")
public PlatformTransactionManager chTransactionManager(
@Qualifier("chEntityManagerFactory") EntityManagerFactory chEntityManagerFactory) {
return new JpaTransactionManager(chEntityManagerFactory);
}
}
@Bean(name = "mysqlSwimmingPoolDataSource")
public DataSource mysqlSwimmingPoolDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/"+appConfig.getSwimDb());
dataSource.setUsername(appConfig.getUsername());
dataSource.setPassword(appConfig.getPassword());
return dataSource;
}
@Bean(name = "mysqlmudhalvarpadaipagamDataSource")
public DataSource mysqlmudhalvarpadaipagamDataSource() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/"+appConfig.getMulPDb());
dataSource.setUsername(appConfig.getUsername());
dataSource.setPassword(appConfig.getPassword());
return dataSource;
}
@Bean(name = "mysqlerpPostData")
public DataSource mysqlerpPostData() {
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("com.mysql.cj.jdbc.Driver");
dataSource.setUrl("jdbc:mysql://localhost:3306/erppostdata");
dataSource.setUsername(appConfig.getUsername());
dataSource.setPassword(appConfig.getPassword());
return dataSource;
}
}