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

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

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

    yxhxj2006

    常用鏈接

    統計

    最新評論

    hibernate查詢方法對比

    HQL查詢

    HQL是hibernate自己的一套查詢語言,于SQL語法不同,具有跨數據庫的優點。示例代碼:

    [java] 
    static void query(String name){ 
      Session s=null; 
      try{ 
       s=HibernateUtil.getSession(); 
        
       //from后面是對象,不是表名 
       String hql="from Admin as admin where admin.aname=:name";//使用命名參數,推薦使用,易讀。 
       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(); 
      } 
     } 
    適用情況:常用方法,比較傳統,類似jdbc。缺點:新的查詢語言,適用面有限,僅適用于Hibernate框架。


    對象化查詢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(); 
      } 
     } 
    適用情況:面向對象操作,革新了以前的數據庫操作方式,易讀。缺點:適用面較HQL有限。


    動態分離查詢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("離線查詢返回結果:" + users); 

    適用情況:面向對象操作,分離業務與底層,不需要字段屬性攝入到Dao實現層。  缺點:適用面較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; 
     } 
    適用情況:面向對象操作。   缺點:適用面較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的朋友,又不打算轉數據庫平臺的朋友,萬能方法   缺點:破壞跨平臺,不易維護,不面向對象。


    命名查詢

    [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,不推薦使用,影響跨數據庫 
        <sql-query name="getUserById2"> 
         <![CDATA[select * from User where ]]> 
        </sql-query> --> 
    </hibernate-mapping>

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


    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 一级毛片免费一级直接观看| 亚洲天堂一区在线| 亚洲AV第一成肉网| 日韩一区二区免费视频| 亚洲熟女综合一区二区三区| 最新猫咪www免费人成| 日韩亚洲产在线观看| 在线精品免费视频无码的| 亚洲日本一线产区和二线产区对比| 女人18毛片a级毛片免费| 亚洲午夜福利在线视频| 国产裸模视频免费区无码| 蜜芽亚洲av无码一区二区三区| 国产精品黄页在线播放免费| 豆国产96在线|亚洲| 免费久久精品国产片香蕉| 日日摸夜夜添夜夜免费视频| 伊人久久精品亚洲午夜| 久久国产乱子免费精品| 亚洲综合一区二区精品久久| 永久免费AV无码国产网站| 亚洲日韩看片无码电影| 亚洲成?v人片天堂网无码| A级毛片成人网站免费看| 久久精品国产亚洲AV电影| 毛片a级毛片免费观看品善网| 久久久久亚洲精品无码网址色欲| 免费jlzzjlzz在线播放视频| 一级特黄录像免费播放肥| 亚洲成人免费电影| 国产在线观看免费视频播放器 | 亚洲自偷精品视频自拍| 青草草色A免费观看在线| 日日摸日日碰夜夜爽亚洲| 亚洲欧洲日产国码无码网站| 在线视频免费观看爽爽爽| 免费高清A级毛片在线播放| 亚洲电影一区二区| 可以免费观看一级毛片黄a| 特级无码毛片免费视频尤物| MM1313亚洲精品无码久久|