2017-01-21 1 views
0

Я работаю над программой 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 стороны.

ответ

2

Вам необходимо закрыть ваше соединение, чтобы сбросить настройки в базе данных.

Попробуйте добавить где-то в вашем конвейере connection.close();, как правило, вы закрываете соединение в блоке finally, чтобы гарантировать, что он всегда закрыт, но, похоже, вы определили свое соединение в другом месте, предположительно для повторного использования в вызывающей функции.

Вам также необходимо закрыть свои заявления перед закрытием соединения. См. this similar answer для рисунка.

+1

это может быть комментарий @gwnp, вы можете хотя бы показать, как закрыть соединение :) –

+0

Вы правы, извините. Теперь должно быть лучше. – gwnp

Смежные вопросы