• 締切済み

sql likeにてlist出力できない

ibatisにてsql処理を行っておりますが、 Map map = new HashMap(); HttpSession session=request.getSession(); Integer userids=(Integer)session.getAttribute("userid"); int userid=userids.intValue(); map.put("userid", userid); List list=(List)sqlMap.queryForList("getImage"); sqlMap.xmlでは、<select id="getImage" resultClass="blog.Dept"> SELECT * FROM blogs WHERE fileName LIKE CONCAT(#userid#,'%') </select> となっております。fileNameには、1_Garden.jpgとか1_forest flower.jpgとかuserid番号+_+ファイル名という形をとっております。  尚、(#userid#,'%')のところを(1,'%')や("1",'%')と仮に代入してみると、正常に動作いたします。 map.putのvalue代入のところをIntegerやObjectにかえて代入してみたりしたのですがうまくゆきません コンソールは[ ]にて出力されます。  原因はよくわかりません。  ご教授の程宜しくお願い申し上げます。  

  • Java
  • 回答数1
  • ありがとう数0

みんなの回答

  • osamuy
  • ベストアンサー率42% (1231/2878)
回答No.1

> List list=(List)sqlMap.queryForList("getImage"); List list=(List)sqlMap.queryForList("getImage", map ); ――ではないかしら。 いや、検索してみただけですが。

関連するQ&A

  • セッションオブジェクトにリンクするプログラムです。

    どこが間違ってますか? コンパイルできないんです。。。 セッションオブジェクトを使って カウンタを作り、リンクからカウンタの値を 変更できるようにしているつもりです。 SessionCount.java <前略> HttpSession session = req.getSession(); Integer count; count = (Integer)session.getAttribute("count"); if (count == null){ count = new Integer(1); }else{ count = new Integer(count.intValue() + 1); } session.setAttribute("count", count); out.println("<html>"); out.println("<head><title>Session Test</title></head>"); out.println("<body>"); out.println("Count = " + count.intValue());//確認用 out.println("<A HREF = "URL/SessionCount" onClick = "count=count+1">続行</A>"); out.println("<A HREF = "URL/SessionCount" onClick ="count=0">リセット</A>"); <後略>

    • ベストアンサー
    • Java
  • コンパイルエラー

    JBuiderでコンパイルしようとするとエラーがでてしまいます。ソースは以下の通りです。 import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class TestServlet extends HttpServlet { public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); Integer count=(Integer)session.getAttribute("count"); if(count == null){  count = new Integer(0); }else{  count = new Integer(count.intValue()+1); } session.setAttribute("count",count); response.setContentType("text/html; charset=Shift_JIS"); PrintWriter out= response.getWriter(); out.println("<html>"); out.println("<head><title>TestServlet</title></head>"); out.println("<body>"); out.println(session.getId()); out.println("<p>\"count\"という名前のattribute = " + count +"</p>"); out.println("</body></html>"); out.close(); } } これをコンパイルすると、 "TestServlet.java": エラー #: 300 : メソッド getAttribute(java.lang.String) が見つかりません: インターフェース javax.servlet.http.HttpSession 行 9, 列 36 "TestServlet.java": エラー #: 300 : メソッド setAttribute(java.lang.String, java.lang.Integer) が見つかりません: インターフェース javax.servlet.http.HttpSession 行 15, 列 13 というメッセージがでます。何が原因なのか教えてください。

  • セッションの情報の消去について

    ログイン時にユーザ名をセッションを登録して、ログアウトのときにremoveAttributeでセッションから名前を消去したいのですが消えません。 ログイン時 String data = "USER NAME"; HttpSession session = request.getSession(); session.setAttribute("user",data); ログアウト時 session.removeAttribute("user"); strutsのexcuteメソッドに書いています。ログインとログアウト以外の処理は書いていません。 public ActionForward excute(ActionMapping map, ActionForm form, HttpServletRequest request, HttpServletResponse resonse) throws Exception { ここにログインとログアウトの処理を記述 } なぜ消えないのか悩んでいます。ご存知の方ご教授いだけないでしょうか。

    • ベストアンサー
    • Java
  • javaサーブレット sessionの使い方

    sessionを使ってデータの受け渡しをしたいのですが、ページ移動が増えると上手く受け渡せ無くて困っています。 jsp→Servlet のみでテストした時は正常に動いたのですが、ページを増やすと値が上手く更新されないのです。 下のプログラムではjspでセッションを開始して、ボタンを押すことでNS1.javaに移動し値を1増やしてNS2.javaに移動します。NS2.javaでも値を1増やしているので結果的に2つ値が増えるはずなのに1つも増えません。 何が悪いのでしょうか。解決策を教えて下さい。 // NStest.jsp <%@ page contentType="text/html;charset=Windows-31J" %> <html> <head> <title>移動</title> </head> <body> <% // isNewメソッドでセッション管理されているか確認します。 if (session.isNew()) { // セッション管理されていない場合、データを登録します。 session.setAttribute("count", 0); // 初回用メッセージ out.println(" Nice to meet you."); } else { // セッション管理されている場合、データを表示します。 out.println("count: " + session.getAttribute("count")); } %> <form method="POST" enctype="multipart/form-data" action="NS1"> <INPUT type="SUBMIT" name="button1" value="移動"> </form> </body> </html> // NS1.java package NStest; import java.io.*; import javax.servlet.*; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class NS1 extends HttpServlet { public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // 出力形式等の設定 ServletContext context = this.getServletContext(); response.setContentType("text/html;charset=Windows-31J"); PrintWriter out = response.getWriter(); HttpSession session = request.getSession(false); String message; if (null == session) { // nullが返ってくる場合はセッションが作成されていない session.setAttribute("count", 0); out.println("セッションが開始されていません。"); } else { // セッションインスタンスからcountの値を取得して表示 // 1加算してふたたび保存 Integer count = (Integer)session.getAttribute("count"); session.setAttribute("count", 1 + count.intValue()); message = "ページカウント: " + count; out.println(message); } // 処理後はNS2.javaにリダイレクト response.sendRedirect("NS2.java"); } } // NS2.java package NStest; import java.io.*; import javax.servlet.*; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class NS2 extends HttpServlet { public void doPost (HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { // 出力形式等の設定 ServletContext context = this.getServletContext(); response.setContentType("text/html;charset=Windows-31J"); PrintWriter out = response.getWriter(); HttpSession session = request.getSession(false); String message; if (null == session) { // nullが返ってくる場合はセッションが作成されていない session.setAttribute("count", 0); out.println("セッションが開始されていません。"); } else { // セッションインスタンスからcountの値を取得して表示 // 1加算してふたたび保存 Integer count = (Integer)session.getAttribute("count"); session.setAttribute("count", 1 + count.intValue()); message = "ページカウント: " + count; out.println(message); } } }

    • ベストアンサー
    • Java
  • 配列の値の削除について

    JSP間でデータの受け渡しの際に、配列の要素で0以外の値だけを受け渡したいと考えています。 例えば、 for (int i = 0; i < list.size(); i++) {  in[i] = ((Integer)list.get(i)).intValue(); } で、inの中の0の要素を削除というようなことをして、session.setAttributeで送りたいと考えているのですが、 よく解らず、困っています。 アドバイス頂けたら幸いです。 宜しくお願いします。

    • ベストアンサー
    • Java
  • リフレクション

    Webアプリ上でリフレクションにてとあるクラスのメソッドを実行するサンプルを作成して 見たのですがうまく動きませんでした。最後のmethod.invoke()の処理にてExceptionが発生し、 java.lang.IllegalArgumentException: object is not an instance of declaring class と表示されてしまいます。 作成したサンプルは下記なのですがどこが原因かお分かりになりますでしょうか。 try { Class cls = Class.forName("dao.TestDao"); // 引数の型をセット Constructor constructor = cls.getDeclaredConstructor(HttpSession.class); constructor.setAccessible(true); // 引数を渡してオブジェクトを生成 Object obj = constructor.newInstance(session); Method method = cls.getDeclaredMethod("getDataDao", int.class); method.setAccessible(true); Object result = method.invoke(cls, new Integer(100)); } catch (Exception e) { e.printStackTrace(); } // このクラスのgetDataDao()をリフレクションにて実行 public class TestDao { HttpSession session = null; public TestDao(HttpSession session) { this.session = session; } public List<String> getDataDao(int iNo) { List<String> list = new ArrayList<String>(); list.add((String)session.getAttribute("1")); list.add((String)session.getAttribute("2")); list.add((String)session.getAttribute("3")); list.add((String)session.getAttribute("4")); list.add((String)session.getAttribute("5")); return list; } }

    • ベストアンサー
    • Java
  • リストボックスに値をセットする場合。

    リストボックスに値をセットする場合。 月のリストボックスと日のリストボックスとロットマークのリストボックスがあり、 月の選択から周期を決定し、日を選択すると、決定された周期と日をもとにして、 ロットマークが決定(値の代入)されるのですが、IF文で記述すると値の代入は、 上手くいくのですが、SELECT文で記述すると上手くいきません。 何が悪いのでしょうか?。 どなたかご教授下さい。 [IFの時] Dim syuuki As Integer If Forms!Print![tuki] = 1 Then syuuki = 2 Else If Forms!Print![tuki] = 2 Then syuuki = 3 Else If Forms!Print![tuki] = 3 Then syuuki = 1 Else : : : If syuuki = 1 Then If Forms!Print![hi] = 1 Then Let Forms!Print![lotmark] = "A" Else If Forms!Print![hi] = 2 Then Let Forms!Print![lotmark] = "B" : : : [SELECTの時] Dim syuuki As Integer Dim tuki_hantei As Integer Dim hi_hantei As Integer Dim dummy As Integer tuki_hantei = Forms!Print![tuki] hi_hantei = Forms!Print![hi] Select Case tuki_hantei Case 3, 6, 9, 12 syuuki = (tuki_hantei Mod 3) + 1 Case 1, 4, 7, 10 syuuki = (tuki_hantei Mod 3) + 1 Case 2, 5, 8, 11 syuuki = (tuki_hantei Mod 3) + 1 End Select dummy = syuuki & hi_hantei Select Case dummy Case 1 & 1 Let Forms!Print![lotmark] = "A" Case 1 & 2 Let Forms!Print![lotmark] = "B" : : :

  • PHPバッファリングで出力した文字列をセッションで

    こんんばんは。この度もよろしくお願いします。 phpを勉強中の者です。 GDを使って画像をリサイズし、ブラウザに表示したり、データベースに保存したりしたいです。そこで、質問なのですが、バッファリングで出力した文字列をセッションで使うことはできないのでしょうか? 以下のようにしてみましたが、別ページで引き継ぎできません。 セッションで使うためにはどうすれば良いのでしょうか。 そもそもセッションでは使うことができない……まるっきり私の理解が間違っているのでしょうか。 よろしくお願いします。 $filename = 'test.jpg'; $percent = 0.5; list($width, $height) = getimagesize($filename); $new_width = $width * $percent; $new_height = $height * $percent; $image_p = imagecreatetruecolor($new_width, $new_height); $image = imagecreatefromjpeg($filename); imagecopyresampled($image_p, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); ob_start(); imagejpeg ($image_p); $img = ob_get_contents(); ob_end_clean(); $_SESSION['img'] = $img; ←できません!

    • ベストアンサー
    • PHP
  • Java。以下のソースをご覧下さい。

    配列ですが、現在の一覧表示を上位10件で表示したいのですが、教わって書いたソースのため、どう手をくわえればいいか分かりません・・・ ご教示お願いします。 //以下ソースです。ほぼ表示ロジックのみですが、足りなければ別途追記致します。 <前略> Iterator<String> ir = hsFlow.keySet().iterator(); while(ir.hasNext()){ ArrayList<Map.Entry<String,Integer>> list = new ArrayList<Map.Entry<String,Integer>>(); list.addAll((new HashMap<String,Integer>(hsFlow)).entrySet()); Collections.sort(list,Collections.reverseOrder(new SampleSorter())); for(Map.Entry<String,Integer> m:list){ System.out.println(m.getKey()); System.out.println(m.getValue()); String f = ir.next(); Integer c = hsFlow.get(f); if(c==null) c = new Integer(0); System.out.println("回数"+f+":"+c.intValue()+"回"); //この回数表示の部分で回数の多い上位10件のみの表示にしたいと思っています。

    • ベストアンサー
    • Java
  • JSP内でfor文を使用し、出力結果にそれぞれ違う値を入れ、サーブレットで受け取りたいです。分かる方教えてください。

    JSP内でfor文を使用し、出力された値それぞれに違う値を設定し、それをサーブレットで受け取りたいのですが? 分かる方教えてください。 <%Integer N = 0; Integer I = (Integer)session.getAttribute("I"); %> <%for(int i=0; i<list.size(); i++){ ListBeanServlet lBean = (ListBeanServlet) list.get(i);N++;%> <a href="/myHtml/ResultS" ><font size="3" color="white"> <c:set var="param" /><%=N%>/<%=lBean.getLMusic()></font></a><br> <%session.setAttribute("param",N); } %> この様に変数Nに値をいれ、N++で各結果に数字符合をして、 出力結果<a href>ひとつひとつに値を設定しようと思うのですが。 Nの値がやはりfor文の最期の値になってしまい。 出力結果の値が全て同じになってしまいます。 (1)List.sizeは不定数です。 (2)form/hiddenを使ってみたものの、変数の値がnullになってしまう。 <% for(int i=I-1; i<list.size(); i++){ ListBeanServlet lBean = (ListBeanServlet) urList.get(i);%> <param name="FileName" value="<%=lBean.getUrl()%>"> <%} %> 同じJSP内の違う場所にサーブレットを使用し送り、 クリックした<a herf>によって違う設定をしたいのですが? 分かる方教えてください。

専門家に質問してみよう