質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

2回答

6901閲覧

mysql delete(エラーでないが削除されない)

kumatarou

総合スコア33

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2015/11/24 14:33

編集2015/11/24 14:59

javaでwebアプリケーション開発をしています。

検索・削除・更新・登録、機能を持った名刺管理を開発しています。
一応すべて完成しましたが、DAOクラスのdeleteがエラーは出ないのですが削除しません。

Connection conn = null; try{ //JDBCドライバのロード Class.forName("com.mysql.jdbc.Driver").newInstance(); // MySQLに接続 conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/business_card", "root", ""); //deleteの準備 String sql = "delete from card_data where card_id = ?"; PreparedStatement pStmt = conn.prepareStatement(sql); String card_id_int = String.valueOf(account); pStmt.setString(1, card_id_int); // SQL文の実行 (削除) int result = pStmt.executeUpdate(); if(result != 1){ } }catch(SQLException e) { e.printStackTrace(); } catch (InstantiationException | IllegalAccessException | ClassNotFoundException e) { e.printStackTrace(); }finally{ //データベースの切断 if(conn != null){ try{ conn.close(); }catch(SQLException e){ e.printStackTrace(); } } } return ; }

デバックでe.printStackTrace();止まることもなければ、変に飛ばすこともありません。
情報をdeleteするためにご意見頂戴できたらと思います。

初心者な者で情報が足りてなく、言葉足らずな部分もたくさんあると思いますので 遠慮なく申しつけ下さい。

お詳しい方がいらっしゃいましたらご教示して頂けると幸いです。
全体ファイル
http://firestorage.jp/download/989f7d736456ff7e073e1493cba3f2d835026010

  1. 削除されないことは、どのように確認しましたか?

削除すると、これまで入れていた情報を一覧できるページに飛ばしているのですが消したつもりの情報が存在していたこと。直接テーブルを見て確認しました。

>2. 変数"account"には、どのような値が代入されていますか?その値に一致するcard_idを持つレコードが、"card_data"テーブルに存在しますか?
idを代入させています。

card_id | mediumint(8) | NO | PRI | NULL ement |

*環境
mysql 5.7
windows7
mysql ver5.5

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

KiyoshiMotoki

2015/11/24 14:50

もっと詳しい状況が知りたいので、以下2点を追記願います。 1. 削除されないことは、どのように確認しましたか? 2. 変数"account"には、どのような値が代入されていますか?その値に一致するcard_idを持つレコードが、"card_data"テーブルに存在しますか?
guest

回答2

0

ベストアンサー

情報の追記、ありがとうございます。

java

1String card_id_int = String.valueOf(account);

で、カードIDを取得しようとしていますが、変数accountAccountクラスのオブジェクトなので、
これが意図した動作になっていないはずです。

上の1行を

java

1String cad_id_int = "" + account.getCardId();

に変更して、もう一度試してみてください。

投稿2015/11/24 15:12

KiyoshiMotoki

総合スコア4791

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kumatarou

2015/11/24 15:24 編集

回答ありがとうございます! 変更して試してみた結果できました! 宜しければ今後の勉強のために教えて頂けないでしょうか? String card_id_int = String.valueOf(account);→String cad_id_int = "" + account.getCardId();になるとなぜ削除できたのでしょうか? そしてどうすればそのように考えられますか?
KiyoshiMotoki

2015/11/24 15:29 編集

> なぜ削除できたのでしょうか? 修正前・修正後それぞれの状態で System.out.println(card_id_int ); とやって、どのような値が代入されているか確認してみてください。 > どうすればそのように考えられますか? 使用するメソッドの仕様は、リファレンスで確認するクセを付けましょう。 http://docs.oracle.com/javase/jp/7/api/ 今回の場合は、String.valueOf()メソッドとObject.toString()メソッドの動作がカギです。
kumatarou

2015/11/24 15:33 編集

そう言うことでしたか!! リファレンスは見方がよくわからなかったのでなるべく避けていましたが、解決の糸口になるのですね。気をつけます。 KiyoshiMotoki様 わかりやすく教えて頂いてありがとうございました!勉強になりました。
KiyoshiMotoki

2015/11/24 15:33

お役に立てたなら、幸いです。
guest

0

deleteの後 commit が抜けているからでは?

投稿2015/11/24 14:37

Orlofsky

総合スコア16415

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kumatarou

2015/11/24 15:23

回答ありがとうございます。 commit抜けていましたね・・・。教えて頂きありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問