java数据库5000万数据导出excel表格,给出示例代码
时间: 2023-08-22 18:03:34 浏览: 42
以下是一个使用Java进行大数据量导出Excel的示例代码:
```java
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.streaming.SXSSFWorkbook;
public class ExportDataToExcel {
public static void main(String[] args) {
String jdbcUrl = "jdbc:mysql://localhost:3306/mydatabase?useSSL=false";
String username = "root";
String password = "password";
String query = "select * from mytable";
String outputFilePath = "output.xlsx";
try (Connection connection = DriverManager.getConnection(jdbcUrl, username, password);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(query);
FileOutputStream fileOutputStream = new FileOutputStream(outputFilePath)) {
SXSSFWorkbook workbook = new SXSSFWorkbook();
Row headerRow = workbook.createSheet().createRow(0);
headerRow.createCell(0).setCellValue("Column1Header");
headerRow.createCell(1).setCellValue("Column2Header");
// Add more header cells as needed
int rowNumber = 1;
while (resultSet.next()) {
Row row = workbook.getSheetAt(0).createRow(rowNumber++);
Cell cell1 = row.createCell(0);
cell1.setCellValue(resultSet.getString("column1"));
Cell cell2 = row.createCell(1);
cell2.setCellValue(resultSet.getString("column2"));
// Add more cell values as needed
}
workbook.write(fileOutputStream);
workbook.dispose();
System.out.println("Data exported to " + outputFilePath);
} catch (Exception e) {
e.printStackTrace();
}
}
}
```
上述代码使用了Apache POI库来生成Excel文件,并使用了SXSSFWorkbook类来支持对大量数据的导出。它使用了MySQL作为示例数据库,但你可以将其替换为你实际使用的数据库。请注意,此代码仅演示了基本的导出过程,实际情况下你可能需要更复杂的查询和数据处理逻辑。