package com.highdatas.mdm.pojo.kettle; import com.alibaba.druid.pool.DruidDataSource; import com.alibaba.druid.pool.DruidPooledConnection; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.stereotype.Component; import javax.sql.DataSource; import java.sql.SQLException; import java.util.List; /** * Created by LF on 2017/4/18. */ @ConfigurationProperties(prefix = "master.unbigdata.db") @Component public class BigDataDataSourceInfo implements DataSourceInfo{ @Value("${master.unbigdata.db.port}") private String dbPort; @Value("${master.unbigdata.db.schema}") private String dbName; @Value("${master.unbigdata.db.type}") private String dbType; @Value("${master.unbigdata.db.host}") private String dbHostName; @Value("${master.unbigdata.db.url}") private String dbUrl; @Value("${spring.datasource.username}") private String username; @Value("${spring.datasource.password}") private String password; @Value("${spring.datasource.driver-class-name}") private String driverClassName; private DruidDataSource datasource; public String getDbPort() { return dbPort; } public void setDbPort(String dbPort) { this.dbPort = dbPort; } public String getDbName() { return dbName; } public void setDbName(String dbName) { this.dbName = dbName; } public String getDbHostName() { return dbHostName; } public void setDbHostName(String dbHostName) { this.dbHostName = dbHostName; } public String getDbType() { return dbType; } public void setDbType(String dbType) { this.dbType = dbType; } public String getDbUrl() { return dbUrl; } public void setDbUrl(String dbUrl) { this.dbUrl = dbUrl; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getDriverClassName() { return driverClassName; } public void setDriverClassName(String driverClassName) { this.driverClassName = driverClassName; } @Bean //声明其为Bean实例 @Primary //在同样的DataSource中,首先使用被标注的DataSource public DataSource dataSource() { datasource = new DruidDataSource(); //datasource.setUrl("jdbc:mysql://localhost:3306/ssm?useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC&characterEncoding=UTF8"); //datasource.setUsername("root"); //datasource.setPassword("123456"); //datasource.setDriverClassName("com.mysql.cj.jdbc.Driver"); datasource.setUrl(this.dbUrl); datasource.setUsername(this.username); datasource.setPassword(this.password); datasource.setDriverClassName(this.driverClassName); return this.datasource; } @Override public boolean createTable(String assembleTempTableName, List fieldList) { return false; } @Override public boolean checkFieldList(String tableName, List fieldList) { return false; } @Override public boolean checkTableExists(String assembleTempTableName) { return false; } @Override public List getFieldsFromTable(String tableName) { return null; } @Bean @Primary public DruidPooledConnection conn() throws SQLException { return this.datasource.getConnection(); } @Override public boolean truncateData(String tempTableName) { return true; } @Override public boolean dropData(String tempTableName) { return false; } }