Jason ---分享,共同進步

          激情成就夢想,努力創造未來
          隨筆 - 53, 文章 - 1, 評論 - 45, 引用 - 0
          數據加載中……

          PreparedStatement 使用like 模糊查詢

          PreparedStatement 使用like

          在使用PreparedStatement進行模糊查詢的時候廢了一番周折,以前一直都沒有注意這個問題。一般情況下我們進行精確查詢,sql語句類似:select * from table where name =?,然后調用 PreparedStatement的setString等方法給?指定值。那么模糊查詢的時候應該怎么寫呢?我首先嘗試了:select * from customer where name like ‘%?%’。
          此時程序報錯,因為?被包含在了單引號中,PreparedStatement并不視它為一個參數。后來上網查了相關的一些資料,發現可以這樣寫select * from table where name like ?;但是在指定參數的時候把?指定為”%”+name+”%”,name是指定的查詢條件。這樣就OK了。
          一般情況下,我總是潛意識的認定了?就是取代所指定的參數,但是實際上我們可以對指定的參數進行了一定的包裝之后再傳給?,比如這里我們在參數的前后都加了一個%,然后再傳給?   

          String expr = "select * from  table where url like ?";
             pstmt = con.prepareStatement(expr);
             String a="a";
             pstmt.setString(1, "%"+a+"%");//自動添加單引號 (包裝后的參數)
            pstmt.execute();
             System.out.println(pstmt.toString());//打印sql
             //會默認生成sql: select * from  table where url like '%http%'

          posted on 2008-03-03 09:35 agun 閱讀(9324) 評論(12)  編輯  收藏 所屬分類: java 基礎

          評論

          # re: PreparedStatement 使用like 模糊查詢  回復  更多評論   

          非常非常感謝。
          問題解決了
          2008-08-21 14:28 | 唐林峰

          # re: PreparedStatement 使用like 模糊查詢  回復  更多評論   

          呵呵,能解決問題就好,有什么問題大家可以多交流.互相學習.
          2008-08-22 08:32 | agun

          # re: PreparedStatement 使用like 模糊查詢  回復  更多評論   

          受益良多,正為這個問題煩惱呢
          2009-02-05 16:27 | Luna

          # re: PreparedStatement 使用like 模糊查詢  回復  更多評論   

          呵呵 ,互相學習
          2009-02-05 16:57 | agun

          # re: PreparedStatement 使用like 模糊查詢  回復  更多評論   

          學習了,謝謝
          2009-02-09 11:44 | 123

          # re: PreparedStatement 使用like 模糊查詢  回復  更多評論   

          總是不注意小的細節問題
          2009-02-13 15:54 | 菜鳥中的菜鳥

          # re: PreparedStatement 使用like 模糊查詢  回復  更多評論   

          真是太犀利了,有時候我們的思維就陷在一個死角里,要有人點撥一下,才能鉆出來。 受益匪淺啊.
          2010-05-11 19:18 | 王智群

          # re: PreparedStatement 使用like 模糊查詢[未登錄]  回復  更多評論   

          根本就解決不了問題
          我試過好幾種方法 都不可以
          2011-12-19 23:25 | Lee

          # re: PreparedStatement 使用like 模糊查詢[未登錄]  回復  更多評論   

          怎么不可以了,是可以?
          2011-12-22 08:48 | agun

          # re: PreparedStatement 使用like 模糊查詢  回復  更多評論   

          學習了~~ 受益匪淺
          2012-01-11 20:50 | 11

          # re: PreparedStatement 使用like 模糊查詢  回復  更多評論   

          謝謝。。。。
          2012-07-06 20:29 | 嚴寧云

          # re: PreparedStatement 使用like 模糊查詢[未登錄]  回復  更多評論   

          為什么我的不能解決問題啊,查詢失敗。。
          2014-03-18 18:16 | 新手
          主站蜘蛛池模板: 永泰县| 许昌市| 东乌珠穆沁旗| 磐安县| 和田市| 承德市| 额尔古纳市| 绵竹市| 安阳市| 陆河县| 驻马店市| 丹棱县| 兴化市| 四子王旗| 海宁市| 南皮县| 民乐县| 临桂县| 苗栗县| 蕉岭县| 河北区| 淅川县| 德令哈市| 调兵山市| 梧州市| 周至县| 温泉县| 南和县| 永康市| 新泰市| 乡城县| 凭祥市| 娄底市| 保靖县| 大英县| 惠安县| 开化县| 孟连| 太保市| 康马县| 陆丰市|