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一米陽光 閱讀(565) 評論(0)  編輯  收藏 所屬分類: cnweblog/nm1504
          主站蜘蛛池模板: 尼勒克县| 乌兰浩特市| 芒康县| 纳雍县| 余干县| 威信县| 恩平市| 阿坝| 哈密市| 甘德县| 高唐县| 平湖市| 深州市| 太谷县| 阿拉尔市| 施秉县| 孝昌县| 静安区| 柏乡县| 襄城县| 靖远县| 韶山市| 江华| 合肥市| 千阳县| 凉山| 长兴县| 靖安县| 雅安市| 长阳| 滦南县| 襄城县| 修武县| 米易县| 修文县| 惠来县| 甘肃省| 项城市| 大田县| 扶余县| 轮台县|