waysun一路陽光

          不輕易服輸,不輕言放棄.--心是夢的舞臺,心有多大,舞臺有多大。踏踏實實做事,認認真真做人。

            BlogJava :: 首頁 :: 新隨筆 :: 聯系 ::  :: 管理 ::
            167 隨筆 :: 1 文章 :: 64 評論 :: 0 Trackbacks
          今天的項目中在用Hibernate3.0進行模糊查詢的時候,出現中文亂碼,在網上查了好久資料,終于解決了,現在把整理后的貼出來。
          Hibernate中實現模糊查詢,可有以下三種方式:

          第一種方式:QBC查詢
          String name = "", info = "";
          if (sub != null && sub.getSubname() != null) {
          name = sub.getSubname();
          }
          if (sub != null && sub.getSubinfo() != null) {
          info = sub.getSubinfo();
          }
          Criteria cr = session.createCriteria(Subject.class);
          cr.add(Expression.like("subname","%"+name+"%"));
          cr.add(Expression.like("subinfo","%"+info+"%"));

          第二種方式:HQL查詢語句
          String hql = "from Subject as s where s.subname like :name and s.subinfo like :info";
          // 調用session的獲得數據列表方法,傳遞HQL查詢語句
          String  subnamevalue="要查詢的中文值";
          String   sql="";
          sql   = "from Pfapp  where name like :subname ";

          Query query = session.createQuery(sql); 
          query.setString("subname","%"+subnamevalue+"%");
          System.out.println("*********"+sql);

          注:Subject為數據庫表subject映射的類;它有相應的屬性subname、subinfo及相應的get和set方法;sub為Subject的一個實例化對象。
          另外說明的是:如果你不寫對象名稱,直接寫字段,那么hibernate就按照數據庫字段進行查找
          如果你寫   (對象名.對象屬性),那么hibernate就按照ormapping中的映射字段進行查找
          這是hibernate的靈活之處!!
          posted on 2009-02-22 19:50 weesun一米陽光 閱讀(573) 評論(0)  編輯  收藏 所屬分類: cnweblog/nm1504
          主站蜘蛛池模板: 屯门区| 陕西省| 新兴县| 宜君县| 农安县| 三江| 大余县| 康保县| 河间市| 乐清市| 大悟县| 文登市| 鱼台县| 木兰县| 朝阳市| 通州市| 铜山县| 清流县| 襄汾县| 顺义区| 沙雅县| 嘉鱼县| 勃利县| 呼图壁县| 西乌珠穆沁旗| 武清区| 曲麻莱县| 泰安市| 贵南县| 延川县| 张家港市| 攀枝花市| 东阳市| 麻城市| 资阳市| 文山县| 广元市| 宜宾县| 防城港市| 玉溪市| 中江县|