• ベストアンサー

MySQLへのINSERT

JAVA Connection とPreparedStatement でMysqlへINSERT分を実行したいのですが、エラー が出力されます。 SELECT分だと正常に実行されるのですが。。。。どうしてでしょうか? ps = conn.prepareStatement(\" INSERT INTO test00 (data1) values (1)\")

質問者が選んだベストアンサー

  • ベストアンサー
  • k_rama
  • ベストアンサー率50% (1/2)
回答No.1

SELECT文は実行できるんですよね? ということはクエリ実行時に何かあやまりがあると考えられます。 SQLを実行する際、「executeQuery()」というメソッドを使用していませんか? おそらく以下のようになっているのではないでしょうか。 *****************************************: ResultSet rset = stmt.executeQuery(); ***************************************** executeQuery()はクエリを実行したさいに何か値を返すときに使用するメソッドです。取得した値をResultSet型の変数に代入することによって使用することが出来ます。 INSERTやUPDATE文はDBの内容を変更するだけなので、値を返しません。 そんなときには ***************************************** stmt.executeUpdate() ***************************************** 上記のように「executeUpdate()」メソッドを使用します。 これはDBの内容を変更しますよ!ということをしてくれるメソッドです。 繰り返しになりますが、「executeQuery()」はクエリを実行して返り値を取得するメソッドです。つまり、このメソッドを使用してINSERTなどを実行するとエラーが発生します。 えらそうなことを言いましたが、上記はあくまで考えられる一つの原因ですので、的外れな回答でしたら申し訳ありません。その場合はもう少し判断材料をいただいければと思います。

stockjp
質問者

お礼

ありがとうございます。助かりました

関連するQ&A