- ベストアンサー
StatementクラスのexecuteQueryメソッドを使用したSQLの発行について
StatementクラスのexecuteQueryメソッドを使用したSQLの発行について教えてください。 JavaでMySQLのデータベースからデータを取得するため、 executeQueryメソッドを使用してSQLの発行を行ったのですが、select文が正常に実行されずに困っています。(where句の条件が引っかからずに困っています。) 【前提】 ・カラム「name」の値に「name(nameという文字)」が入っている状態。 ・INT型、CHAR型で定義されたカラムの値は取得できる ・VARCHAR型で定義された、カラムの値が取得できない 【状況】 VARCHAR型で定義された、カラムの値が取得できない場合というのが、java側で、 stmt.executeQuery("SELECT * from customer where name='name'") というようにSQL文を発行した場合です。 MySQLのコマンドプロンプトからダイレクトに投げた場合や、 またDBViewerを使用した場合は、Where句の「name='name'」で引っかかったデータが正常に返ってくるのですが、 Javaから発行した場合のみ「VARCHAR型で定義されているカラムの値が取れない」という状況なのです。 (考えられることとしては、SQL発行時「SELECT * from customer where name='name'」 の 「'name'」が、別の何かに変わっているのかな?(文字コードなどが関係しているのか?)など考えているのですが、解決できず困っております。) 一体どこに問題があるのでしょうか? (CHAR型、INT型のデータは正常にJava側で読めるのに、VARCHAR型の値をwhere句にした場合に限って、正常にデータ抽出できない、という点が腑に落ちないのですが・・・ SQLエラーを吐く訳ではなく、抽出条件が成立していない形なのです) 【実行環境】 ・Windows XP Pro ・eclipse3.4(all in one eclipse) ・Java1.6 ・TomCat6.0 ・MySQL5.0 (文字コード:UTF-8)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
その他の回答 (1)
- x_jouet_x
- ベストアンサー率68% (162/236)
お礼
ありがとうございます。 >MySQLサーバが出力するログファイルの確認が必要だと思います。 そのようなものがあるのですね(驚) 問題箇所の絞込んで、 また確認していこうと思います。 どうもありがとうございます。 なんだか解決に繋がりそうな気がしてきました。
補足
この質問についてですが お知恵を貸していただいてすみません^^; あれから、いろいろ試していったのですが、 「eclipseを終了させた後、eclipse機能の“リフレッシュ(ショートカットキーF5)”を使用したところ、後に問題なく動作するようになりました。」 MySQLのログの確認方法については まだわかっていませんので、また調べてみたいと思います。 どうも、ありがとうございました。