竹形誠司 ブログ
ご質問    »トピック一覧
掲示板へのスパムが多いため、「ご質問」のコーナーはユーザー登録制とさせていただきました。お手数ですが、上の「新規ユーザーの登録」メニューより登録をお願いします。
帳票Web
アプリケーション

受注開発始めました
詳しくは こちら
竹形 誠司 著/ラトルズ刊
JSP帳票アプリケーション実践開発入門
JSP帳票アプリケーション
実践開発入門

JSP業務アプリケーション短期開発入門
JSP業務アプリケーション
短期開発入門

Java+MySQL+Tomcatで始めるWebアプリケーション構築入門
Java+MySQL+Tomcatで始めるWebアプリケーション構築入門

Java+MySQL+Tomcatで作る掲示板とブログ
Java+MySQL+Tomcatで作る
掲示板とブログ
プリペアステートメントのselect文でwhere句にlike指定する方法について
by スワジランド[swajiland]
竹形様

いつもお世話になります。
プリペアステートメントのselect文でwhere句にlike指定したいのですが、うまく働かないようです。以下のようなコードですが、?のところにthredkensakumojiがうまくはまりません。何か間違いがありましたらご教示おねがいいたします。
Class.forName("com.mysql.jdbc.Driver");
Connection users = DriverManager.getConnection(
    "jdbc:mysql://Localhost/user_db","****","****");
String strSql="SELECT hatugen_no,hatugenjikan,id,nickname,theme,comment,file_name" +" FROM keijiban_hatugen where theme like ? or comment like ? or file_name like ?" +"ORDER BY hatugen_no DESC"; 
PreparedStatement pstmt = users.prepareStatement(strSql);
thredkensakumoji = "'%" + thredkensakumoji + "%'";
pstmt.setString(1,thredkensakumoji);
pstmt.setString(2,thredkensakumoji);
pstmt.setString(3,thredkensakumoji);
   
ResultSet resulthatugen = pstmt.executeQuery();
投稿:スワジランド[swajiland]/2009年 03月 12日 15時 22分 /更新:2009年 03月 12日 15時 25分
RE:プリペアステートメントのselect文でwhere句にlike指定する方法について
by スワジランド[swajiland]
竹形様

分かりました。
thredkensakumoji = "%" + thredkensakumoji + "%";
のようにシングルクオーテオションを除いたらうまく動きました。
シングルクオーテオションはいらないんでしょうか?
何か情報ありましたらご教示ください。
投稿:スワジランド[swajiland]/2009年 03月 12日 17時 05分 /更新:2009年 03月 12日 17時 05分
RE:プリペアステートメントのselect文でwhere句にlike指定する方法について
by 竹形 誠司[takegata]
setStringで指定する文字列にシングルクオートを含める必要はありません。シングルクオートは数字や変数ではなくリテラル(文字列)であることを示すためのものです。setStringで指定する場合は、リテラルであることが自明なのでシングルクオートを省いて指定するようになっているのだと思います。
投稿:竹形 誠司[takegata]/2009年 03月 12日 18時 22分 /更新:2009年 03月 12日 20時 45分
RE:プリペアステートメントのselect文でwhere句にlike指定する方法について
by スワジランド[swajiland]
竹形様

情報どうもありがとうございました。
いつもご丁寧な対応感謝いたします。
投稿:スワジランド[swajiland]/2009年 03月 12日 21時 17分 /更新:2009年 03月 12日 21時 17分