2017-11-26 6 views
-1

Insert 쿼리를 데이터베이스에 추가하려고합니다. 모든 것이 잘 작동하고 오류가 발생하지 않습니다. 그러나 데이터베이스에 삽입 한 데이터는 데이터베이스에 반영되지 않습니다. 정렬에서 데이터베이스는 갱신되지 않습니다.쿼리가 성공적으로 실행되었지만 데이터베이스가 업데이트되지 않았습니다.

try{ 
    Database_Operation db = new Database_Operation(); 

    db.connection(); 

    db.cn.setAutoCommit(false); 
    db.cn.commit(); 
    PreparedStatement ps1=db.cn.prepareStatement("insert into product values(?,?,?)"); 



    Boolean status = true; 

    ps1.setString(1,name.getText()); 
    ps1.setString(2, price.getText()); 
    ps1.setString(3, status.toString()); 

    db.cn.close(); 

     JOptionPane.showMessageDialog(this," Data saved ", "succsess" ,1); 

    }catch(Exception e){ 
     e.printStackTrace(); 
    } 

무엇이 잘못 되었나요?

+1

쿼리 ** 및 **를 실행하는 것을 잊지 마십시오. 나중에 커밋해야합니다. –

답변

0

당신은 PreparedStatement를 실행하지 않았습니다. 아래 라인을 추가하십시오 ps1.execute();

try{ 
    Database_Operation db = new Database_Operation(); 

    db.connection(); 

    db.cn.setAutoCommit(false); 
    db.cn.commit(); 
    PreparedStatement ps1=db.cn.prepareStatement("insert into product values(?,?,?)"); 



    Boolean status = true; 

    ps1.setString(1,name.getText()); 
    ps1.setString(2, price.getText()); 
    ps1.setString(3, status.toString()); 
    ps1.execute(); 
    db.cn.close(); 

    JOptionPane.showMessageDialog(this," Data saved ", "succsess" ,1); 

}catch(Exception e){ 
    e.printStackTrace(); 
} 
0

execution 문이 누락되었습니다. DB 닫기 전에 다음 행을 추가하십시오.

ps1.executeUpdate(); 
+0

DML 문은'executeQuery()'가 아닌'executeUpdate()'를 통해 실행되어야합니다. –

+0

고지를 주셔서 감사합니다. – Sohel0415

0

실행 문이 누락되었습니다. 당신은 쿼리를 작성하고 실행하지 않고 있습니다.

당신의 DB 연결을 닫기 전에 코드에 다음 행을 추가 :

ps1.executeUpdate; 
+0

DML 문은'executeQuery()'가 아닌'executeUpdate()'를 통해 실행되어야합니다. –

1

HY

당신이 Database_Operation에서 실행 방법이 바로이 같은의 prepareStatement의 초기화 후 다음 실행 마스트 :

try { 


      // execute update SQL stetement 
      ps1.executeUpdate(); 

      System.out.println("Record is updated to DBUSER table!"); 

     } catch (SQLException e) { 

      System.out.println(e.getMessage()); 

     }