提交 76f28cd4 编写于 作者: 亦蔚然's avatar 亦蔚然

将重复的部分抽取为一个方法

上级 b82ed3c3
......@@ -19,28 +19,13 @@ import java.util.Set;
public class Main {
public static void main(String[] args) throws IOException, SQLException {
// 【待处理】存放待处理的链接的池子
List<String> linkPool = new ArrayList<>();
// 创建一个数据库链接
Connection connection = connection = DriverManager.getConnection("jdbc:h2:file:/Users/yiweiran/Documents/workPlace/java/JavaProject-Crawler-Elasticsearch/news", "root", "123456");
try (PreparedStatement statement = connection.prepareStatement("select link from LINKS_TO_BE_PROCESSED;")) {
// 从数据库加载即将处理的代码
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
linkPool.add(resultSet.getString(1));
}
}
// 【待处理】存放待处理的链接的池子
List<String> linkPool = loadUrlsFromDatabase(connection, "select link from LINKS_TO_BE_PROCESSED;");
// 【已处理】存放已经处理的链接
Set<String> processedLinks = new HashSet<>();
try (PreparedStatement statement = connection.prepareStatement("select link from LINKS_ALREADY_PROCESSED;")) {
// 从数据库加载即将处理的代码
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
linkPool.add(resultSet.getString(1));
}
}
// 添加一个链接到池中
linkPool.add("https://sina.cn");
Set<String> processedLinks = new HashSet<>(loadUrlsFromDatabase(connection, "select link from LINKS_ALREADY_PROCESSED;"));
while (true) {
// 链接池是空的就退出循环
if (linkPool.isEmpty()) {
......@@ -69,6 +54,23 @@ public class Main {
continue;
}
}
}
/*
* 3、重构对数据库操作部分的代码
*
*/
private static List<String> loadUrlsFromDatabase(Connection connection, String sql) throws SQLException {
List<String> results = new ArrayList<>();
try (PreparedStatement statement = connection.prepareStatement(sql)) {
// 从数据库加载即将处理的代码
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()) {
results.add(resultSet.getString(1));
}
}
return results;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册