<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自己的一套查詢語言,于SQL語法不同,具有跨數(shù)據(jù)庫的優(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),類似jdbc。缺點(diǎn):新的查詢語言,適用面有限,僅適用于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ù)庫操作方式,易讀。缺點(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ù)庫平臺(tái)的朋友,萬能方法   缺點(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ù)庫 
        <sql-query name="getUserById2"> 
         <![CDATA[select * from User where ]]> 
        </sql-query> --> 
    </hibernate-mapping>

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


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 国产男女爽爽爽爽爽免费视频| 亚洲国产日产无码精品| 歪歪漫画在线观看官网免费阅读| 亚洲精品偷拍视频免费观看| 亚洲日韩看片无码电影| 亚洲高清在线mv| 国产成人亚洲精品青草天美| 国产一级淫片a免费播放口之| 真人做A免费观看| 99视频免费播放| 国产在线精品一区免费香蕉| 羞羞视频免费网站含羞草| 亚洲成a人片在线看| 亚洲精品在线不卡| 亚洲av无码一区二区三区网站| 亚洲精品国产精品国自产观看 | 亚洲不卡无码av中文字幕| 久久久久免费看黄A片APP| 免费女人高潮流视频在线观看 | 国产亚洲精品自在线观看| 国产免费av片在线播放| 成人au免费视频影院| 114一级毛片免费| 免费在线观看视频网站| 久久精品毛片免费观看| 人妻无码久久一区二区三区免费 | 国产亚洲精品免费视频播放| 免费在线观看黄网| 可以免费观看一级毛片黄a| 在线A级毛片无码免费真人 | 波多野结衣亚洲一级| 国产成人精品日本亚洲专| 亚洲AV色吊丝无码| 中文字幕亚洲精品无码| 亚洲一区二区三区丝袜| 亚洲综合偷自成人网第页色| 亚洲第一男人天堂| 亚洲国产区男人本色| 国产精品亚洲专区无码唯爱网| 亚洲a∨无码一区二区| 国产精品亚洲一区二区三区在线观看 |