MYSQL插入查询不将数据更新到JAVA中的表

时间:2017-01-21 07:32:15

标签: java mysql

我正在开发一个需要从文本文件更新数据库的JAVA程序。我已成功插入和更新数据。但我在这里面临一个问题,这个方法。查询运行没有错误并给我响应。但是数据库表没有更新。

private void filteData() {
        System.out.println("filteData");
        Statement statementAtenLogInsert = null; 
        Statement statementqCheck = null; 
        Statement statementUpdateProLog = null; 
        Statement statementEnterError = null; 
        ResultSet rs = null;
        int rcount;

        //Update successfull attendance_test
        String attenLogInsertSuccess = "INSERT INTO attendance_log (user_id, check_in, check_out) SELECT user_id, check_in, check_out FROM process_log WHERE flag = 'S'";

        try {
            statementAtenLogInsert = connection.createStatement();
            statementAtenLogInsert.execute(attenLogInsertSuccess);
            int qSuccess = statementAtenLogInsert.executeUpdate(attenLogInsertSuccess);

            System.out.println("qSuccess " + qSuccess);

            if(qSuccess > 0){

                String deleteProcessLog = "DELETE FROM process_log WHERE flag = 'S'";
                statementAtenLogInsert.execute(deleteProcessLog);

            }

        } catch (SQLException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }


    }

此处 attenLogInsertSuccess deleteProcessLog 查询无效。从数据库表端来看,没有任何意义。但 qSuccess 给了我一个价值。这意味着 attenLogInsertSuccess 正在触发。但是mysql方面没有发生任何事情。

1 个答案:

答案 0 :(得分:2)

您需要关闭连接才能刷新对数据库的更改。

尝试在管道中的某处添加connection.close();,通常关闭finally块中的连接以确保它始终处于关闭状态,但看起来您已在其他地方定义了连接,可能是为了在调用函数中重用。

您还需要在关闭连接之前关闭语句。有关模式,请参阅this similar answer