Java数据库导出大数量的CSV
1. 准备工作
在开始之前,确保已经安装了Java开发环境(JDK)和MySQL数据库,需要添加MySQL的JDBC驱动到项目中,如果使用Maven,可以在pom.xml
文件中添加以下依赖:
<dependency> <groupId>mysql</groupId> <artifactId>mysqlconnectorjava</artifactId> <version>8.0.26</version> </dependency>
2. 连接数据库
创建一个名为DatabaseUtil
的工具类,用于连接MySQL数据库:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; public class DatabaseUtil { private static final String URL = "jdbc:mysql://localhost:3306/your_database_name"; private static final String USER = "your_username"; private static final String PASSWORD = "your_password"; public static Connection getConnection() throws SQLException { return DriverManager.getConnection(URL, USER, PASSWORD); } }
3. 查询数据
创建一个名为DataExporter
的工具类,用于从数据库中查询数据:
import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; public class DataExporter { public static List<String[]> queryData(String sql) throws SQLException { List<String[]> data = new ArrayList<>(); try (Connection connection = DatabaseUtil.getConnection(); PreparedStatement preparedStatement = connection.prepareStatement(sql); ResultSet resultSet = preparedStatement.executeQuery()) { int columnCount = resultSet.getMetaData().getColumnCount(); while (resultSet.next()) { String[] row = new String[columnCount]; for (int i = 1; i <= columnCount; i++) { row[i 1] = resultSet.getString(i); } data.add(row); } } return data; } }
4. 导出CSV文件
创建一个名为CSVExporter
的工具类,用于将查询到的数据导出为CSV文件:
import java.io.FileWriter; import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.List; public class CSVExporter { public static void exportToCSV(List<String[]> data, String filePath) throws IOException { try (FileWriter fileWriter = new FileWriter(filePath, StandardCharsets.UTF_8)) { for (String[] row : data) { fileWriter.append(String.join(",", row)); fileWriter.append(" "); } } } }
5. 主程序
在主程序中调用以上工具类,实现从数据库导出CSV文件的功能:
public class Main { public static void main(String[] args) { String sql = "SELECT * FROM your_table_name"; String filePath = "output.csv"; try { List<String[]> data = DataExporter.queryData(sql); CSVExporter.exportToCSV(data, filePath); System.out.println("CSV文件导出成功!"); } catch (SQLException | IOException e) { e.printStackTrace(); System.out.println("CSV文件导出失败!"); } } }
运行主程序,即可将数据库中的数据导出为CSV文件,注意替换your_database_name
、your_username
、your_password
和your_table_name
为实际的值。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。