• ベストアンサー

MySQLとJavaでのコードについて。

JavaBeanを使って、MySQLにデータを追加したいのですが、それがなかなかうまくいかず質問してます。 Statement statement = connection.createStatement(); String sql_str ="INSERT INTO customer VALUES(\"" +name+"','"+email+"','"+password+"\")"; int r=statement.executeUpdate(sql_str); このコードはjavaBeanのなかに入っており、name,email,passwordはjspからjavabeanに送られてきます。多分、VALUESの後のname,emai,passwordを入れるのに”’などの使い方が間違ってると思います。本には載ってなかったので、ウェッブ検索してみよう見真似でやったので、”’の使い方を把握してません。誰か分かる方回答お願いします。 あとこれとは違うmethodにSELECT文を使った時、 String sql_str = "SELECT email, password FROM customer where email='"+email+"'AND password='"+password+"'"; ResultSet rs = stmt.executeQuery(sql_str);とやったときは動きました。最初はこれと同じようにINSERT 文も書いたのですが、動かなかったんですよね。

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

  • ベストアンサー
  • isi0611
  • ベストアンサー率34% (46/134)
回答No.2

こんばんは~(^^♪ String sql_str ="INSERT INTO customer VALUES(\"" +name+"','"+email+"','"+password+"\")"; はちょっと違ってますね。 String sql_str ="INSERT INTO customer VALUES('"+name+"','"+email+"','"+password+"')"; となります。\"してしまうと\"~\"が文字列となってしまうのでおかしくなってしまいます。 また、name,email,passwordがString型なら''で囲みますが→'name' int型など数値の場合は''はいらなくなります。→name わからないことがありましたらまたどうぞ(^o^)丿

参考URL:
http://www.h5.dion.ne.jp/~p-s-s/vb/sql/insert.html
tenagaru
質問者

お礼

その通りにやったら動きました。なかなかこういうような解説がのってなくて困ってました。有難うございます。

その他の回答 (1)

回答No.1

javaで¥はエスケープ文字として認識され、\"はダブルクォーテーションを表現します。 ですので、SQLは "INSERT INTO customer VALUES('"+name+"','"+email+"','"+password+"')"; とすれば良いと思います。

tenagaru
質問者

お礼

早速のお答えありがとうございます。おかげで動きました。どうもどうも。

関連するQ&A