@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();
}
个人笔记,仅供参考
本文详细介绍了如何使用线程池技术来优化数据库信息的抓取过程,通过合理调度并发线程,提高数据获取效率,同时有效管理和控制资源消耗。
456

被折叠的 条评论
为什么被折叠?



