1、业务场景
要求获取不同数据库的表信息和表结构信息,数据库类型包括oracle,MySQL,SqlServer。
2、实现思路
step1 新增数据库连接信息(主机,端口,数据库类型,实例名,用户名,密码,状态)
step2 测试连接,成功状态正常,失败不正常
step3 创建JdbcTemplate对象,保存到map中(key=唯一标识符,value=JdbcTemplate对象),避免重复创建销毁
step4 通过SQL语句获取表信息和表结构
step5定时检查map,销毁不常用的JdbcTemplate对象
3、代码
工厂类生成JdbcTemplate对象。
package com.aadata.etl.cache;
import com.aadata.etl.model.DbConnInfo;
import com.aadata.etl.util.DateUtil;
import com.aadata.etl.util.StringUtil;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.sql.DataSource;
import java.text.ParseException;
import java.util.*;
@Component
@EnableScheduling
public class DbConnectCache {
//还是用线程安全的集合比较好哈
public static Map

本文介绍了一种实现数据库连接管理和表信息获取的方法,涵盖了Oracle、MySQL和SQL Server等数据库类型,通过JdbcTemplate对象缓存减少资源消耗,并提供定时清理机制。
最低0.47元/天 解锁文章
903





