• 締切済み

エラーの原因がわかりません。

調べたのですが原因がいまいちわからないので 質問させていただきます。 sqlName = new String(name.getByte("Shift_JIS"),"JISAutoDetect"); sqlYear = new String(year.getByte("Shift_JIS"),"JISAutoDetect"); sqllanguage = new String(language.getByte("Shift_JIS"),"JISAutoDetect"); sqlsonota = new String(sonota.getByte("Shift_JIS"),"JISAutoDetect"); String sql = ""; sql += " insert into user "; sql += " (name, year, language, sonota)"; sql += " values ( "; sql += "'" + sqlName + "'"; sql += ",'" + sqlYear + "'"; sql += ",'" + sqllanguage + "'"; sql += ",'" + sqlsonota + "'"; sql += " ) "; System.out.println("SQL文"); stmt.executeUpdate(sql); System.out.println("SQL文を発行"); }catch(Exception e){ System.out.println("SQLエラーが発生しました : " + e.toStrin()); } stmt.executeUpdate(sql)で例外が発生します。 SQLエラーが発生しました : java.sql.SQLException: Duplicate entry '' for key 1 stmt.executeUpdate(sql)には問題がないと思うので sql文でのエラーじゃないかと思っているのですが 原因がわかりません。 もしお分かりになる方がいればよろしくお願いします

みんなの回答

  • sakusaker7
  • ベストアンサー率62% (800/1280)
回答No.1

Duplicate entry とメッセージにあるので、 プライマリキーが重複しているデータを放り込もうとしていませんか?

NeilMania
質問者

お礼

Duplicate entryとエラーメッセージが出ると プライマリキーの重複エラーなんですね、勉強になりました。 java.sql.SQLException: Duplicate entry '' for key 1 で 検索をしたのでほとんど答えが載ってなくてDuplicate entry だと沢山載っていました。 今回のエラーは パラメーターがnullだったのにSQL発行していたために起きたエラーでした。 よくよく考えればsqlエラーだったらsyntaxエラーメッセージが 出ていましたね。 お返事有難うございました。

関連するQ&A