<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    yxhxj2006

    常用鏈接

    統(tǒng)計(jì)

    最新評(píng)論

    hibernate查詢方法對(duì)比

    HQL查詢

    HQL是hibernate自己的一套查詢語(yǔ)言,于SQL語(yǔ)法不同,具有跨數(shù)據(jù)庫(kù)的優(yōu)點(diǎn)。示例代碼:

    [java] 
    static void query(String name){ 
      Session s=null; 
      try{ 
       s=HibernateUtil.getSession(); 
        
       //from后面是對(duì)象,不是表名 
       String hql="from Admin as admin where admin.aname=:name";//使用命名參數(shù),推薦使用,易讀。 
       Query query=s.createQuery(hql); 
       query.setString("name", name); 
        
       List<Admin> list=query.list(); 
        
       for(Admin admin:list){ 
        System.out.println(admin.getAname()); 
       } 
      }finally{ 
       if(s!=null) 
       s.close(); 
      } 
     } 
    適用情況:常用方法,比較傳統(tǒng),類(lèi)似jdbc。缺點(diǎn):新的查詢語(yǔ)言,適用面有限,僅適用于Hibernate框架。


    對(duì)象化查詢Criteria方法:

    [java] 
    static void cri(String name,String password){ 
      Session s=null; 
      try{ 
       s=HibernateUtil.getSession(); 
        
       Criteria c=s.createCriteria(Admin.class); 
       c.add(Restrictions.eq("aname",name));//eq是等于,gt是大于,lt是小于,or是或 
       c.add(Restrictions.eq("apassword", password)); 
        
       List<Admin> list=c.list(); 
       for(Admin admin:list){ 
        System.out.println(admin.getAname()); 
       } 
      }finally{ 
       if(s!=null) 
       s.close(); 
      } 
     } 
    適用情況:面向?qū)ο蟛僮?,革新了以前的?shù)據(jù)庫(kù)操作方式,易讀。缺點(diǎn):適用面較HQL有限。


    動(dòng)態(tài)分離查詢DetachedCriteria

    [java] 
    static List dc(DetachedCriteria dc) { 
     
      Session s = HibernateUtil.getSession(); 
      Criteria c = dc.getExecutableCriteria(s); 
      List rs = c.list(); 
      s.close(); 
      return rs; 
     } 

    [java]
    DetachedCriteria dc = DetachedCriteria.forClass(User.class); 
      int id = 1; 
      if (id != 0) 
       dc.add(Restrictions.eq("id", id)); 
      Date age = new Date(); 
      if (age != null) 
       dc.add(Restrictions.le("birthday", age)); 
      List users = dc(dc); 
      System.out.println("離線查詢返回結(jié)果:" + users); 

    適用情況:面向?qū)ο蟛僮?,分離業(yè)務(wù)與底層,不需要字段屬性攝入到Dao實(shí)現(xiàn)層。  缺點(diǎn):適用面較HQL有限。


    例子查詢

    [java]
    static List example(User user) { 
      Session s = HibernateUtil.getSession(); 
      List<User> users = s.createCriteria(User.class).add( 
        Example.create(user)).list(); 
      // List<User> 
      // users2=s.createCriteria(User.class).add((Example.create(user)).ignoreCase()) 
      // .createCriteria("child").add((Example.create(user))).list(); 
      return users; 
     } 
    適用情況:面向?qū)ο蟛僮鳌?nbsp;  缺點(diǎn):適用面較HQL有限,不推薦。


    sql查詢

    [java]
    static List sql() { 
     
      Session s = HibernateUtil.getSession(); 
      Query q = s.createSQLQuery("select * from user").addEntity(User.class); 
      List<User> rs = q.list(); 
      s.close(); 
      return rs; 
     } 
    適用情況:不熟悉HQL的朋友,又不打算轉(zhuǎn)數(shù)據(jù)庫(kù)平臺(tái)的朋友,萬(wàn)能方法   缺點(diǎn):破壞跨平臺(tái),不易維護(hù),不面向?qū)ο蟆?/p>


    命名查詢

    [java]
    static List namedQuery(int id) { 
      Session s = HibernateUtil.getSession(); 
      Query q = s.getNamedQuery("getUserById"); 
      q.setInteger("id", id); 
      return q.list(); 
     } 

    [html]
    <?xml version="1.0" encoding="utf-8"?> 
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
     
    <hibernate-mapping> 
        <class name="com.sy.vo.User" table="user" catalog="news"> 
         
      
     
        </class> 
        <!-- 命名查詢:定義查詢條件 --> 
        <query name="getUserById"> 
         <![CDATA[from User where id=:id]]> 
        </query> 
        <!-- 命名查詢中使用sql,不推薦使用,影響跨數(shù)據(jù)庫(kù) 
        <sql-query name="getUserById2"> 
         <![CDATA[select * from User where ]]> 
        </sql-query> --> 
    </hibernate-mapping>

    posted on 2012-06-29 13:34 奮斗成就男人 閱讀(907) 評(píng)論(0)  編輯  收藏


    只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲美免无码中文字幕在线| 免费av一区二区三区| 亚洲国产精品嫩草影院在线观看| 久久久久久影院久久久久免费精品国产小说 | 国产精品亚洲一区二区三区久久| 亚洲欧洲自拍拍偷精品 美利坚| 男男AV纯肉无码免费播放无码| 成人免费区一区二区三区 | 67194成是人免费无码| 免费一级毛片无毒不卡| 国产精品偷伦视频观看免费| 一区二区三区在线观看免费| 无人视频免费观看免费视频| 国产成人亚洲精品播放器下载 | 91成人免费观看网站| 久久国产免费一区| 一级毛片免费不卡在线| 国产成人高清亚洲一区91| 激情综合亚洲色婷婷五月| 亚洲AV永久无码区成人网站| 亚洲成Av人片乱码色午夜| 免费jjzz在线播放国产| 亚洲熟伦熟女新五十路熟妇 | 亚洲七久久之综合七久久| 亚洲国产福利精品一区二区| 亚洲色在线无码国产精品不卡| 亚洲午夜精品在线| 亚洲国产精品精华液| 国产午夜亚洲精品| 国产va免费观看| 国产国产人免费视频成69堂| 免费h成人黄漫画嘿咻破解版| 亚洲精品线在线观看| 无遮挡a级毛片免费看| 无码国产精品一区二区免费式影视| 一区二区三区观看免费中文视频在线播放 | 国产精品偷伦视频免费观看了| 免费黄网站在线看| 四虎永久免费网站免费观看| 亚洲av激情无码专区在线播放| 中文字幕亚洲免费无线观看日本|