我想将我的 MySQL 数据库导出为 .xls 或 .txt 格式。我怎么能在java中做到这一点。我想要做的是在我的应用程序中有一个按钮,按下它,我的数据库导出到 excel 文件。谢谢。
问问题
8280 次
5 回答
2
对 MySQL 进行系统调用:
mysql -e'SELECT * FROM table'>file.csv
于 2012-09-05T14:37:59.540 回答
0
您可以使用BIRT并将数据库生成为您想要的任何格式。如果您使用的是 struts2,您可以将datagrid
其导出为 CSV 或 Excel。
您可能会发现它很有帮助:
SELECT ....... INTO OUTFILE '/tmp/result.text' FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n' FROM table
于 2012-09-05T14:40:26.157 回答
0
导出整个数据库的最简单方法是使用本机数据库工具。看看这篇文章:http ://www.electrictoolbox.com/mysql-export-data-csv/
或者,您可以使用连接到 DB 的 JDBC 或 ORM 实现代码,读取数据并使用您想要的任何格式写入数据。
于 2012-09-05T14:38:28.867 回答
0
您可以使用Mysql-JDBC 驱动程序和Apache POI。
于 2012-09-05T14:44:49.180 回答
0
使用此代码
它适用于 .xls 文件
package com.demo.export;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;
public class dataExportService {
public void getDefendants(Connection con , String db) throws Exception {
@SuppressWarnings("unused")
Workbook readWorkbook = WorkbookFactory.create(new FileInputStream("C:\\Users\\CEPL\\Desktop\\test.xls") );
@SuppressWarnings("resource")
Workbook writeWorkbook = new HSSFWorkbook();
Sheet desSheet = writeWorkbook.createSheet("new sheet");
Statement stmt = null;
ResultSet rs = null;
try{
String query ="SELECT * FROM "+db;
stmt = con.createStatement();
rs = stmt.executeQuery(query);
ResultSetMetaData rsmd = rs.getMetaData();
int columnsNumber = rsmd.getColumnCount();
Row desRow1 = desSheet.createRow(0);
for(int col=0 ;col < columnsNumber;col++) {
Cell newpath = desRow1.createCell(col);
newpath.setCellValue(rsmd.getColumnLabel(col+1));
}
while(rs.next()) {
System.out.println("Row number" + rs.getRow() );
Row desRow = desSheet.createRow(rs.getRow());
for(int col=0 ;col < columnsNumber;col++) {
Cell newpath = desRow.createCell(col);
newpath.setCellValue(rs.getString(col+1));
}
FileOutputStream fileOut = new FileOutputStream("C:\\Users\\CEPL\\Desktop\\test.xls");
writeWorkbook.write(fileOut);
fileOut.close();
}
}
catch (SQLException e) {
System.out.println("Failed to get data from database");
}
}
}
于 2018-09-14T04:59:13.600 回答