2017-11-26 9 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ステートメントは 'executeUpdate()'によって実行される必要があります。 'executeQuery() ' –

+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()); 

     } 
関連する問題