1

MySQLデータベースを.xlsまたは.txt形式にエクスポートしたい。どうすればJavaでそれを行うことができますか。私がやりたいのは、アプリケーションにボタンを押すと、データベースがExcelファイルにエクスポートされるボタンがあることです。ありがとう。

4

5 に答える 5

2

MySQLをシステムコールします。

mysql -e'SELECT * FROM table'>file.csv
于 2012-09-05T14:37:59.540 に答える
0

DB全体をエクスポートする最も簡単な方法は、ネイティブDBツールを使用することです。この記事を見てください:http ://www.electrictoolbox.com/mysql-export-data-csv/

または、DBに接続し、データを読み取り、任意の形式を使用して書き込むJDBCまたはORMを使用してコードを実装することもできます。

于 2012-09-05T14:38:28.867 に答える
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

Mysql-JDBCドライバーApachePOIを使用できます。

于 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 に答える