线程池 抓取数据库信息

本文详细介绍了如何使用线程池技术来优化数据库信息的抓取过程,通过合理调度并发线程,提高数据获取效率,同时有效管理和控制资源消耗。
@Async(ThreadPoolConfig.EXECUTOR_NAME)
public void transferData() throws SQLException, CloneNotSupportedException {
		
	String srcUrl = DBURL.getURL(DBURL.DBTYPE_SQLSERVER, "10.10.1.47", "1433", "srcdbname");
	String srcUser = "sa";
	String srcPasswd = "123456";
		
	String targetUrl = DBURL.getURL(DBURL.DBTYPE_MYSQL, "10.10.1.47", "3306", "targetdbname");
	String targetUser = "root";
	String targetPasswd = "123456";
		
	DruidDataSource srcDataSource = createDataSource(DBURL.DBTYPE_SQLSERVER, srcUrl, srcUser, srcPasswd);
	SqlRunner srcSqlRunner = SqlRunner.create(srcDataSource);
	DruidDataSource targetDataSource = createDataSource(DBURL.DBTYPE_MYSQL, targetUrl, targetUser, targetPasswd);
	SqlRunner targetSqlRunner = SqlRunner.create(targetDataSource);
		
	List<Entity> dictionaryWordList = srcSqlRunner.findAll("srctbname");
	List<Entity> targetDictionaryWordList = new ArrayList<>();
	for (Entity entity : dictionaryWordList) {
			
	        Entity targetEntity = Entity.create("targettbname")
			            .set("targetfield1", entity.getObj("srcfield1"))
				    .set("targetfield2", entity.getObj("srcfield2"));
			
	        targetDictionaryWordList.add(targetEntity);
	}
		
	logger.info("写入开始时间:" + new Date().toString());
	targetSqlRunner.insert(targetDictionaryWordList);
	logger.info("写入结束时间:" + new Date().toString());
		
	srcDataSource.clone();
	targetDataSource.close();
}

http://hutool.mydoc.io/

个人笔记,仅供参考
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值