如何将arraylist数据存储到数据库中

Posted

技术标签:

【中文标题】如何将arraylist数据存储到数据库中【英文标题】:How to store arraylist data into database 【发布时间】:2019-02-10 04:24:29 【问题描述】:

大家好,我想将存储在数组列表中的数据插入到数据库中不知道如何将其存储到数据库中

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、数据类别类型、数据类别、子类别/子存储桶、值名称、值、计量单位、发票总金额、到期日、发票收据日期、调整标志、估计与实际读取、图像详细信息、次要供应商、客户名义、替代品?、待定、待定、待定、待定、完整的事实、商业竞争、身份识别、详细信息du 14/09/2017 n, 待提取?, detail de votrefacture du, index de 首次亮相, index de fin, 待计算?, TBD?, TBD?, TBD?, TBD?, TBD, TBD, TBD, TBD, TBD, FactureTTC, a regler avant le, TBD, TBD, Relve Estime - which mon th?, TBD, TBD]

所以我想将客户名称存储到次要供应商作为数据库列名称和来自 Nom du 客户我想存储在客户名称列下所以请帮助我

【问题讨论】:

你应该澄清你的问题,你想使用像hibernate这样的ORM还是你甚至想使用jpa? ...或者你想使用普通的 jdbc 连接?您使用哪个数据库供应商等。 你需要建立一个jdbc连接,通过sql命令插入你的数据并执行。要知道什么是连接以及如何执行 jdbc 连接。参考geeksforgeeks.org/establishing-jdbc-connection-in-java如何将数组列表写入数据库(类似的例子已经回答)-***.com/questions/12127407/… 【参考方案1】:

我不太确定问题是什么,但是可以使用 JDBC 驱动程序和 mysql 数据库来将数组列表存储在数据库中,如下所示:

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 数据库的教程和指南。

【讨论】:

所以请帮助我,我想将所有输出存储到数据库中 很难解决基于“它不起作用”的问题。什么没用?你得到了哪些错误?您的数据库表与代码的关系如何?

以上是关于如何将arraylist数据存储到数据库中的主要内容,如果未能解决你的问题,请参考以下文章

如何将用户的 ArrayList 存储在 Android 的 Firebase 数据库中?

如何在 postgresql 中存储 Arraylist 数据

如何保存或存储对象的 ArrayList?

把ArrayList集合的字符串存储到文本文件/把文本文件的数据存储到ArrayList集合中

如何使用java和jsp和extjs将java arraylist转换为json数组存储数据

例外:从意图存储ArrayList时“无法转换为java.util.ArrayList”