竹形様
いつもお世話になります。
プリペアステートメントのselect文でwhere句にlike指定したいのですが、うまく働かないようです。以下のようなコードですが、?のところにthredkensakumojiがうまくはまりません。何か間違いがありましたらご教示おねがいいたします。
	いつもお世話になります。
プリペアステートメントの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();
			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分
						
						
					
				
					
setStringで指定する文字列にシングルクオートを含める必要はありません。シングルクオートは数字や変数ではなくリテラル(文字列)であることを示すためのものです。setStringで指定する場合は、リテラルであることが自明なのでシングルクオートを省いて指定するようになっているのだと思います。
					
			
						投稿:竹形 誠司[takegata]/2009年 03月 12日 18時 22分
						
							/更新:2009年 03月 12日 20時 45分
						
						
					
				
					
竹形様
情報どうもありがとうございました。
いつもご丁寧な対応感謝いたします。
					
			情報どうもありがとうございました。
いつもご丁寧な対応感謝いたします。
						投稿:スワジランド[swajiland]/2009年 03月 12日 21時 17分
						
							/更新:2009年 03月 12日 21時 17分
						
						
					
				



