关闭窗口后从 CSV 文件添加数据到 Java Derby 数据库删除

问题描述

我编写了一个代码,使用户能够上传 CSV 文件并将其添加到 Intellij 中的 derby 数据库。它有效,但是当窗口关闭时,数据消失了。我正在使用 JavaFX 和 Java。

这是适配器类中的方法

//update the table with new csv file
public void editData(File path)throws sqlException {
    String line = "";
    Statement stmt = connection.createStatement();
    try {
        BufferedReader br = new BufferedReader(new FileReader(path));
        while ((line = br.readLine()) != null) {
            //storing the csv file values in an array and removing all the commas that are existing in the file
            String[] values = line.split(",");
            //for (int i = 0; i < values.length; i++) {
                // stmt.executeUpdate("UPDATE am60Data SET Temperature ='" + values[0].toString() + "',Strain =  '" + values[1].toString() + "',Stress = '" + values[2].toString() + "',True_Strain = '" + values[3].toString() + "',True_Stress = '" + values[4].toString() + "'," +
                //  "StrainRate = '" + values[4].toString() + "',Aloy_id = '" + values[4].toString() + "'   ");

            stmt.executeUpdate("INSERT INTO am60Data (Temperature,Strain,Stress,True_Strain,True_Stress,StrainRate,Aloy_id   ) " +
                         "VALUES('" + values[0].toString() + "','" + values[1].toString() + "','" + values[2].toString() + "','" + values[3].toString() + "','" + values[4].toString() + "','" + values[4].toString() + "' )");
        }
    } catch (FileNotFoundException e) {
        e.printstacktrace();
    } catch (IOException e) {
        e.printstacktrace();
    }
}

//编辑发布单元的方法

这是连接到我的 FXML 文件的控制器中的方法

public void save()
{
    try {
        AM60adapter= new AM60Adapter(conn,true);
        AM60adapter.editData(new File(filePath.getText()));
        buildData();
        AM60adapter.getDataValues();

        // NOTE: This value is specific for Java DB
        String DB_URL = "jdbc:derby:MeridianDB;create=true";
        // Create a connection to the database
        conn = DriverManager.getConnection(DB_URL);
        AM60adapter = new AM60Adapter(conn,true);
        compositionAdapter = new AM60CompositionAdapter(conn,true );
        summaryAdapter = new AM60SummaryAdapter(conn,true);
        creepAdapter = new AM60CreepAdapter(conn,true);

        //when the user clicks on the cancel button

    } catch (sqlException ex) {
        displayAlert("ERROR: " + ex.getMessage());
    }
}

关闭窗口后所有插入的数据都消失了。请任何人帮忙!

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)