2009-07-28 21 views
0

(SQL & JDBCを使用して)データをdataTableに挿入する必要がある準備済みの文を使用しています。私は正常に動作するデータを削除するものを使用していますが、挿入されたデータはデータテーブルに挿入されず、エラーや警告は発生しません。準備された陳述がこのように失敗する原因は何ですか? 準備された文にNULL値を挿入すると、これが発生しますか?Prepared Statement Failing

+0

いくつかのサンプルコードを投稿できますか? –

+0

ChssPly76はそれを正確に得ました –

答えて

2

「失敗してもエラーは発生しない」とはどういう意味ですか?データが実際に挿入されていないかどうか、どうやってそれが失敗しているのか分かりますか?おそらくあなたはトランザクションをコミットしていないでしょうか?

+0

混乱を排除するために編集された質問。はいのデータは実際に挿入されていません。 –

+0

さて、トランザクションがコミットされているかどうかチェックしましたか?ここにあなたのコードを投稿できますか? – ChssPly76

+0

ええ、私は 'insert.executeUpdate();'まだ動作していませんが、少なくとも私は今、エラーがあります。ありがとうございます。 –

0

問題を解決する2つの方法。

第一の方法:

Connection con = DriverManager.getConnection(DB_host, DB_UserName, DB_UserPassword); 
    con.setAutoCommit(true); 
String sql = "INSERT INTO Users (fName, lastName, userName, password) VALUES (?, ?, ?, ?)"; 
PreparedStatement stmt = con.prepareStatement(sql); 
stmt.setString(1, "fName"); 
stmt.setString(2, "lastName"); 
stmt.setString(3, "userName"); 
stmt.setString(4, "password"); 
stmt.executeUpdate(); 

第二の方法:

Connection con = DriverManager.getConnection(DB_host, DB_UserName, DB_UserPassword); 
String sql = "INSERT INTO Users (fName, lastName, userName, password) VALUES (?, ?, ?, ?)"; 
PreparedStatement stmt = con.prepareStatement(sql); 
stmt.setString(1, "fName"); 
stmt.setString(2, "lastName"); 
stmt.setString(3, "userName"); 
stmt.setString(4, "password"); 
stmt.executeUpdate(); 
con.commit(); 

接続オブジェクト自体はそれのための真の自動コミットを有効に作成中です。だから、それをすぐにURデータベースに反映させるようにしてください。

urトランザクション後にトランザクションをデータベースに保存するためにコミットとして接続します

関連する問題