• ベストアンサー
  • 困ってます

StatementクラスのexecuteQueryメソッドを使用したSQLの発行について

  • 質問No.5031135
  • 閲覧数610
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 89% (222/248)

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)

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

  • 回答No.2
  • ベストアンサー

ベストアンサー率 72% (27/37)

質問の内容だけですと問題箇所の特定は困難なので、原因を調べるためにはMySQLサーバが出力するログファイルの確認が必要だと思います。

MySQLサーバには要求されたSQLをログファイルに出力する機能があるはずなので、その機能を有効にすればどのようなSQL文がMySQLへ届いているのかが分かります。それを確認することで問題箇所を絞り込めるのではないでしょうか。
補足コメント
Guno-this

お礼率 89% (222/248)

この質問についてですが
お知恵を貸していただいてすみません^^;

あれから、いろいろ試していったのですが、
「eclipseを終了させた後、eclipse機能の“リフレッシュ(ショートカットキーF5)”を使用したところ、後に問題なく動作するようになりました。」

MySQLのログの確認方法については
まだわかっていませんので、また調べてみたいと思います。
どうも、ありがとうございました。
投稿日時:2009/06/12 22:04
お礼コメント
Guno-this

お礼率 89% (222/248)

ありがとうございます。

>MySQLサーバが出力するログファイルの確認が必要だと思います。
そのようなものがあるのですね(驚)

問題箇所の絞込んで、
また確認していこうと思います。

どうもありがとうございます。
なんだか解決に繋がりそうな気がしてきました。
投稿日時:2009/06/11 01:34

その他の回答 (全1件)

  • 回答No.1

ベストアンサー率 68% (162/236)

私のところもほぼ同じ環境で確認しましたが、VARCHAR型の値をwhere句に使用しても問題なく抽出できました。

where句に2バイト文字(全角など)を使用していれば文字コードも関係してくる可能性もありますが、そういう問題でもなさそうですね。

試しにPreparedStatementでSQLを発行してみてはいかがでしょう?
結果は同じかもしれませんが…。

後は考えられることはJDBCのバージョンでしょうか…。
補足コメント
Guno-this

お礼率 89% (222/248)

この質問についてですが
お知恵を貸していただいてすみません^^;

あれから、いろいろ試していったのですが、
「eclipseを終了させた後、eclipse機能の“リフレッシュ(ショートカットキーF5)”を使用したところ、後に問題なく動作するようになりました。」

「eclipse内容とワークスペース内容の同期が取れてなかった」だけなのかもしれませんが・・・
んー なんだったんですかね(--;

現状は問題なく動作している状況です。(苦笑)
どうも、ありがとうございました。
投稿日時:2009/06/12 22:06
お礼コメント
Guno-this

お礼率 89% (222/248)

ありがとうございます。

私の方も別の環境で試してみたところ、
問題なく動いたのですが、あるプロジェクトに限ってそのような状態です。

ちょっと色々とためしてみます(汗)
どうもです。
投稿日時:2009/06/11 01:32
結果を報告する
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,600万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ