簡體   English   中英

如何將arraylist數據存儲到數據庫中

[英]How to store arraylist data into database

大家好,我想將存儲在數組列表中的數據插入數據庫中,我已經嘗試從Excel文件中讀取並存儲到數組列表中,所以現在我想將數據插入數據庫中,但現在還不知道如何將其存儲到數據庫中

public class ReadExcelFile {

int ColumnCount = 0;

public void readExcel(String filePath, String fileName, String sheetName) throws IOException {

    File file = new File(filePath + "\\" + fileName);

    FileInputStream inputStream = new FileInputStream(file);

    Workbook Workbook = null;

    String fileExtensionName = fileName.substring(fileName.indexOf("."));

    if (fileExtensionName.equals(".xlsx")) {

        Workbook = new HSSFWorkbook(inputStream);

    } else if (fileExtensionName.equals(".xls")) {

        Workbook = new HSSFWorkbook(inputStream);

    }

    Sheet MSheet = Workbook.getSheet(sheetName);

    int rowCount = MSheet.getLastRowNum() - MSheet.getFirstRowNum();
    ArrayList<String> arra = new ArrayList<String>();
    for (int i = 0; i < rowCount + 1; i++) {
        Row row = MSheet.getRow(i);
        if (i == 0) {
            ColumnCount = row.getLastCellNum();

        }

        for (int j = 0; j < row.getLastCellNum(); j++) {

            // System.out.print(row.getCell(j).getStringCellValue() + "|| ");
            //ArrayList<String> getdata=new ArrayList<String>();
            arra.add(row.getCell(j).getStringCellValue());
            //System.out.println(arra);
            ArrayList<String> keyword = arra;
            keyword.contains(row.getCell(j).getStringCellValue());

            // System.out.println(row.getCell(j).getStringCellValue());
            // System.out.println(arra);
            //Dictionary getdata = new Hashtable();
            //getdata.put(row.getCell(j).getStringCellValue()," ");
            //System.out.println(getdata);
        }

        System.out.println(arra);

    }

}

public static void main(String args[]) throws IOException {

    ReadExcelFile objExcelFile = new ReadExcelFile();

    String filePath = System.getProperty("user.dir");

    objExcelFile.readExcel(filePath, "RuleBook.xls", "Data");

}

}

我得到的輸出是:[客戶名稱,位置名稱,服務點位置,位置城市,州/省,位置國家/地區,帳號,備用帳號,儀表編號,發票ID,發票月份,發票日期,服務開始日期,服務結束日期,服務天數,供應商名稱,供應商服務名稱,唯一ID,數據類別類型,數據類別,子類別/子桶,值名稱,值,計量單位,總發票金額,到期日,發票收據日期,調整標志,估計值與實際讀取值,圖像詳細信息,第二個供應商,客戶名稱,無償購買?,待定,待定,待定,待定,補償,商業,身份識別,投票細節,14 / 09/2017 n,待提取?,細節,首次亮相,索引,要計算?,TBD ?, TBD ?, TBD ?, TBD ?, TBD,TBD,TBD,TBD,TBD ,FactureTTC,先行者,TBD,TBD,Relve Estime-哪個月份?,TBD,TBD]

因此,我想將“客戶端名稱”存儲到“二級供應商”作為“數據庫”列名稱,並希望從“ Nom du客戶端”存儲在“客戶端名稱”列下,因此請幫助我

我不太清楚問題是什么,但是可以使用JDBC驅動程序和MySQL數據庫來將arraylist存儲在數據庫中,如下所示:

var host = "localhost";
var databaseName = "databasename";
var port = "3306";

var url = "jdbc:mysql://" + host + ":" + port + "/" + databaseName;

try(Connection con = DriverManager.getConnection(url, "username", "password")) {

    String SQL = "INSERT INTO tablename(client_name) VALUES(?)";
    PreparedStatement stmt = con.prepareStatement(SQL);
    for(String clientName : listOfClientNames) {
        stmt.setString(1, clientName);
        stmt.addBatch();
    }
    stmt.executeBatch();

} catch (SQLException e) {
    System.out.println("Could not connect");
}

您需要將ClientName存儲在一個列表中(我稱之為listOfClientNames)

關於如何設置MySQL數據庫,有許多教程和指南。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM