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

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

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

    【永恒的瞬間】
    ?Give me hapy ?
     

    Criteria:

    Criteria criteria = session.createCriteria(User.class);

    1)criteria.add(Restrictions.gt("age", new Integer(20)));

    2)criteria.add(Restrictions.lt("age", new Integer(40)));

    3)criteria.add(Restrictions.or(Restrictions.eq("age", new Integer(20)), Restrictions.isNull("age")));

    crit.add(Restrictions.ilike("name","1", MatchMode.END));

    // // ilikeiignore之意,所以查詢englishName"Optima?XL?100K?Ultracentrifuge"(忽略大小寫)的記錄

    4)criteria.add(Restrictions.sqlRestriction("{alias}.name LIKE (?)", "cater%", Hibernate.STRING));

    5) Integer[] ages = {new Integer(20), new Integer(40)};

    Type[] types = {Hibernate.INTEGER, Hibernate.INTEGER};

    criteria.add(Restrictions.sqlRestriction("{alias}.age BETWEEN (?) AND (?)", ages, types));

     

    6) criteria.setFirstResult(51);

    criteria.setMaxResult(50);

      7) 統計表rowCount()count()max()min()countDistinct()

    criteria.setProjection(Projections.avg("age"));

      8)分組20,20,25,30 à 20.25.30

           criteria.setProjection(Projections.groupProperty("age"));

     9)結合統計分組

       ProjectionList projectionList = Projections.projectionList();

    projectionList.add(Projections.groupProperty("age"));

    projectionList.add(Projections.rowCount());

    Criteria criteria = session.createCriteria(User.class);

    criteria.setProjection(projectionList);

    10) Query Criteria Id: data type Long

    projectionList.add(crit.add( Expression.idEq( 11111L) );

    11) Query Criteria Id: Not Equal

     crit.add( Expression.ne( "name""noName" ) );)

    12)crit.setProjection(Projections.rowCount());

    13示不重復記錄

    criteria.setResultTransformer(criteria.DISTINCT_ROOT_ENTITY);

    List users = criteria.list();

    Restrictions的幾個常用限定詢方法如下表所示:

    方法

    Restrictions.eq

    等於

    Restrictions.allEq

    使用Map,使用key/value進行多個等於的比對

    Restrictions.gt

    大於 >

    Restrictions.ge

    大於等於 >=

    Restrictions.lt

    小於 <

    Restrictions.le

    小於等於 <=

    Restrictions.between

    對應SQLBETWEEN子句

    Restrictions.like

    對應SQLLIKE子句

    Restrictions.in

    對應SQLin子句

    Restrictions.and

    and關係

    Restrictions.or

    or關係

    Restrictions.sqlRestriction

    SQL限定

    HQLHibernate Query Language

     PS:

     1:HOL是不區分大小寫的,但名稱是區分大小寫的.

         2:如果User類別提供有適當的建構方法,則可以在使用HQL時直接指定新建一個物件傳回

    Query query = session.createQuery("select new User(user.name, user.age) from User as user");

        3. 如果試圖使用SessionsaveOrupdate()方法,則會新增一筆資料而不是更新原有的資料。

        4. 還可以結合having子句,例如只將平均大於20的資料分組顯示出來:

    Query query = session.createQuery("select user.sex, avg(user.age) from User user group by user.sex having avg(user.age) > 20");

       5. 更新與刪除的時候

                 Session session = sessionFactory.openSession();

    Transaction tx= session.beginTransaction();

    Query query = session.createQuery("update User set name='momor' where name='bbb'");

    query.executeUpdate();

    tx.commit();

    session.close();

     

    Hibernate:HQL/QBC查詢語言比的用法

    Hib索方式
    1'
    圖檢索方式。通象,調.iterator()方法可以得到order
    如果是首次行此方法,Hib會從數據載關聯order象,否就從存中得到。
    2'OID索方式。通sessiongetload方法知道了OID的情況下可以使用
    3'HQL
    索方式。使用面向象的HQL查詢語sessionfind方法利用HQL查詢
    4'QBC
    索方式。利用QBCAPI索它是封裝了基于字符串的查詢語
    5'
    本地的SQL索方式。使用本地數據SQL查詢語Hib負責索到的JDBC果集映射持久化

    種檢索方式的使用合和特點:

    HQL 
     是面向象的查詢語言,同SQL有些相似是Hib中最常用的方式。
           
    查詢設定各種查詢條件。
           
    支持投影查詢索出象的部分屬性。
           
    支持分頁查詢,允使用havinggroup by
           
    提供內制的聚集函數,sum()min()max()
           
    調用用的自定SQL
           
    支持子查詢,嵌入式查詢
           
    支持動態綁定參數
    使用Query接口替sessionfind方法。
       Query Q = session.createQuery("from customer as c where c.name = :customerName" + "and c.age = :customerAge");
       query.setString ("customerName" , "tom");
       query.setInteger("customerAge" , "21");
       list result = query.list();
    QBC :  QBCAPI
    提供了另一方式,主要是Criteria接口、Criterion接口和Expression
       Criteria criteria = session.createCriteria(customer.class);
       Criterion criterion1 = Expression.like("name","t%");
       Criterion criterion2 = Expression.eq("age",new Integer(21));
       Critera = criteria.add(criterion1) ;
       Critera = criteria.add(criterion2) ;
       list result = criteria.list(); 
       
    或是: list result = session.createCriteria(Customer.class).add(Expression.eq("this.name","tom")).list(); 
    SQL :  
    采用HQLQBCHib生成SQL句適用所有數據
       Query query  = session.createSQLQuery("select {c.*} from customers c where c.name like : customername " + "and c.age = :customerage","c",customer.calss);
       query.setString("customername","tom");
       query.setInteger("customerage","21");
       list result = query.list();
    /////////////
    態查詢
       HQL 
    session.createQuery("from employee");
       QBC 
    session.createCriteria(employee.class);
       HQL : session.createQuery("from hourlyEmployee");
       QBC : session.createCriteria(hourlyEmployee.class);
       
    下面的HQL查詢語句將索出所有的持久化象:
       from java.lang.Object ;
       from java.io.serializable ;
    ////////////
    查詢的排序
       1'
    查詢結果按照客姓名升序排列:
       HQL 

            Query query = session.createQuery ("from customer c order by c.name");
       QBC 

            Criteria criteria = session.createCriteria(customer.class);
            criteria.addOrder(order.asc("name"));
       HQL :
            Query query = session.createQuery ("from customer c order by c.name asc , c.age desc");
       QBC :
            Criteria criteria = session.createCriteria(customer.class);
            criteria.addOrder(order.asc ("name"));
            criteria.addOrder(order.desc("age")); 

            import net.sf.hibernate.pression.Order
            import mypack.Order
            ...........
            Criteria criteria = session.createCritria (mypack.Order.class);
            criteria.addOrder(net.sf.hibernate.Order.asc("name"));
    ///////////HQL
    句的參數Query接口提供了定各Hib映射型的方法。
            setBinary()
            setString()
            setBoolean()
            setByte()
            setCalendar()
            setCharacter()
            setDate()
            setDouble()
            setText()
            setTime()
            setTimestamp()
            setEntity()//
    把參數與一個持久化的事例lsit result = session.createQuery("from order o where o.customer =            :customer").setEntity("customer" , customer).list ;
            setParameter()//
    定任意型的參數
            setProperties()//
    把命名參數與一個象的屬性值綁 Query query = session.createQuery("from customer c where c.name =:     name " + "and c.age =:age" );
            Query.setProperties(customer); 

     

    posted on 2007-05-15 14:05 ???MengChuChen 閱讀(920) 評論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 亚洲人成人伊人成综合网无码 | 久久精品免费大片国产大片 | 国产亚洲综合成人91精品| 成年免费a级毛片| 啊灬啊灬别停啊灬用力啊免费看| 亚洲精品乱码久久久久久V | 成年在线观看免费人视频草莓| 亚洲中文字幕久久精品蜜桃| 成年女人午夜毛片免费视频| 色视频在线观看免费| 亚洲区小说区图片区| 久草免费福利视频| 亚洲妓女综合网99| 国产精品va无码免费麻豆| 黄页网站在线视频免费| 九月丁香婷婷亚洲综合色| 香蕉免费一区二区三区| 亚洲一级毛片在线观| 国产精品冒白浆免费视频| 一级特级女人18毛片免费视频| 亚洲精品字幕在线观看| 88xx成人永久免费观看| 亚洲乱码av中文一区二区| 亚洲国产香蕉人人爽成AV片久久 | 午夜国产精品免费观看 | 亚洲精品理论电影在线观看| 亚洲国产成人a精品不卡在线| 日韩精品无码免费专区网站| 亚洲成a人片7777| 国产乱子伦精品免费女| 在线毛片片免费观看| 亚洲日产2021三区在线| 日本不卡免费新一二三区| 中文字幕在线免费播放| 亚洲免费视频观看| 亚洲国产午夜中文字幕精品黄网站| 91精品国产免费久久国语蜜臀 | 亚洲无删减国产精品一区| 麻豆国产精品入口免费观看| 暖暖在线视频免费视频| 大桥未久亚洲无av码在线|