Commit 2919eac0 by 梁家彪

commit

parent b45829c8
package com.zq.datacollect.holder;
import org.springframework.jdbc.core.JdbcTemplate;
import java.sql.Connection;
import java.sql.SQLException;
import java.util.Map;
public class DatabaseHolder {
private static Map<Integer, JdbcTemplate> jdbcTemplateMap;
public static void set(Map<Integer, JdbcTemplate> map) {
jdbcTemplateMap = map;
}
public static void add(Integer id, JdbcTemplate jdbcTemplate){
jdbcTemplateMap.put(id, jdbcTemplate);
}
public static JdbcTemplate getJdbcTemplate(Integer id){
return jdbcTemplateMap.get(id);
}
public static Connection getConnection(Integer id){
try {
return jdbcTemplateMap.get(id).getDataSource().getConnection();
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
\ No newline at end of file
package com.zq.datacollect.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.zq.datacollect.entity.DataCollectTestFrom;
public interface DataCollectTestFromMapper extends BaseMapper<DataCollectTestFrom> {
}
\ No newline at end of file
package com.zq.datacollect.runner;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.spring.boot.autoconfigure.DruidDataSourceBuilder;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.zq.common.exception.BusinessException;
import com.zq.datacollect.entity.QueryDb;
import com.zq.datacollect.holder.DatabaseHolder;
import com.zq.datacollect.mapper.QueryDbMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.sql.SQLException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Slf4j
@Component
public class DatabaseRunner implements ApplicationRunner {
@Resource
private QueryDbMapper queryDbMapper;
private Map<Integer, JdbcTemplate> jdbcTemplateMap = new HashMap<>();
@Override
public void run(ApplicationArguments args) throws SQLException {
List<QueryDb> datasource = queryDbMapper.selectList(new QueryWrapper<>());
for (QueryDb ds : datasource) {
DruidDataSource druidDataSource = DruidDataSourceBuilder.create().build();
String url = "";
String className = "";
switch (ds.getDbType()) {
case 1:
className = "com.mysql.cj.jdbc.Driver";
url = "jdbc:mysql://" + ds.getDbIp() + ":" + ds.getDbPort() + "/" + ds.getDbName() + "?characterEncoding=utf8&useSSL=false&serverTimezone=GMT%2B8&autoReconnect=true";
break;
case 2:
className = "oracle.jdbc.driver.OracleDriver";
url = "jdbc:oracle:thin:@//" + ds.getDbIp() + ":" + ds.getDbPort() + "/" + ds.getDbName();
break;
case 3:
className = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
url = "jdbc:sqlserver://" + ds.getDbIp() + ":" + ds.getDbPort() + "/" + ds.getDbName();
break;
default:
throw new BusinessException("不支持的数据库");
}
druidDataSource.setDriverClassName(className);
druidDataSource.setUrl(url);
druidDataSource.setUsername(ds.getUsername());
druidDataSource.setPassword(ds.getPassword());
druidDataSource.init();
jdbcTemplateMap.put(ds.getId(), new JdbcTemplate(druidDataSource));
}
DatabaseHolder.set(jdbcTemplateMap);
log.info("成功加载数据库:{}个", jdbcTemplateMap.size());
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment