你可以使用 Java 的 JDBC API来连接数据库,并使用 SQL 语句来查询数据。然后,您可以使用 Java IO API来写入文件。以下是一个伪代码实现:
import java.sql.*;
import java.io.*;
public class GenerateSitemap {
private static final int BATCH_SIZE = 50000; //分批大小
private static final String DB_URL = "jdbc:mysql://localhost/mydatabase";
private static final String USER = "username";
private static final String PASS = "password";
public static void main(String[] args) {
try (Connection conn = DriverManager.getConnection(DB_URL, USER, PASS);
Statement stmt = conn.createStatement();
BufferedWriter writer = new BufferedWriter(new FileWriter("sitemap.xml"))) {
//查询总记录数
String countQuery = "SELECT COUNT(*) FROM mytable";
ResultSet countResult = stmt.executeQuery(countQuery);
countResult.next();
int totalRecords = countResult.getInt(1);
//分批查询数据
for (int i = 0; i < totalRecords; i += BATCH_SIZE) {
String query = "SELECT url FROM mytable LIMIT " + i + ", " + BATCH_SIZE;
ResultSet rs = stmt.executeQuery(query);
//写入文件
writer.write("<urlset xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\">\n");
while (rs.next()) {
String url = rs.getString("url");
writer.write("<url><loc>" + url + "</loc></url>\n");
}
writer.write("</urlset>\n");
//关闭ResultSet
rs.close();
}
} catch (SQLException | IOException e) {
e.printStackTrace();
}
}
}
这个代码片段连接到数据库,使用 SQL 查询url,然后按照分批数量将它们写入文件。在此示例中,我们将url写入