<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) 統(tǒng)計(jì)表rowCount()count()、max()、min()、countDistinct()

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

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

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

     9)結(jié)合統(tǒng)計(jì)分組

       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示不重復(fù)記錄

    criteria.setResultTransformer(criteria.DISTINCT_ROOT_ENTITY);

    List users = criteria.list();

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

    方法

    Restrictions.eq

    等於

    Restrictions.allEq

    使用Map,使用key/value進(jìn)行多個(gè)等於的比對(duì)

    Restrictions.gt

    大於 >

    Restrictions.ge

    大於等於 >=

    Restrictions.lt

    小於 <

    Restrictions.le

    小於等於 <=

    Restrictions.between

    對(duì)應(yīng)SQLBETWEEN子句

    Restrictions.like

    對(duì)應(yīng)SQLLIKE子句

    Restrictions.in

    對(duì)應(yīng)SQLin子句

    Restrictions.and

    and關(guān)係

    Restrictions.or

    or關(guān)係

    Restrictions.sqlRestriction

    SQL限定

    HQLHibernate Query Language

     PS:

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

         2:如果User類別提供有適當(dāng)?shù)慕?gòu)方法,則可以在使用HQL時(shí)直接指定新建一個(gè)物件傳回

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

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

        4. 還可以結(jié)合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. 更新與刪除的時(shí)候

                 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查詢語(yǔ)言比的用法

    Hib索方式
    1'
    導(dǎo)對(duì)圖檢索方式。通經(jīng)對(duì)象,調(diào).iterator()方法可以得到order對(duì)
    如果是首次執(zhí)行此方法,Hib會(huì)從數(shù)據(jù)庫(kù)載關(guān)聯(lián)order對(duì)象,否就從存中得到。
    2'OID索方式。通sessiongetload方法知道了OID的情況下可以使用
    3'HQL
    索方式。使用面向對(duì)象的HQL查詢語(yǔ)sessionfind方法利用HQL查詢
    4'QBC
    索方式。利用QBCAPI索它是封裝了基于字符串的查詢語(yǔ)
    5'
    本地的SQL索方式。使用本地?cái)?shù)據(jù)庫(kù)SQL查詢語(yǔ)Hib會(huì)負(fù)責(zé)索到的JDBC結(jié)果集映射持久化對(duì)

    種檢索方式的使用場(chǎng)合和特點(diǎn):

    HQL 
     是面向對(duì)象的查詢語(yǔ)言,同SQL有些相似是Hib中最常用的方式。
           
    查詢?cè)O(shè)定各種查詢條件。
           
    支持投影查詢索出對(duì)象的部分屬性。
           
    支持分頁(yè)查詢,允使用havinggroup by
           
    提供內(nèi)制的聚集函數(shù),sum(),min(),max()
           
    調(diào)用用的自定SQL
           
    支持子查詢,嵌入式查詢
           
    支持動(dòng)態(tài)綁定參數(shù)
    使用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 :  
    采用HQLQBC時(shí),Hib生成SQL語(yǔ)句適用所有數(shù)據(jù)庫(kù)。
       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();
    /////////////
    態(tài)查詢
       HQL 
    session.createQuery("from employee");
       QBC 
    session.createCriteria(employee.class);
       HQL : session.createQuery("from hourlyEmployee");
       QBC : session.createCriteria(hourlyEmployee.class);
       
    下面的HQL查詢語(yǔ)句將索出所有的持久化對(duì)象:
       from java.lang.Object ;
       from java.io.serializable ;
    ////////////
    查詢的排序
       1'
    查詢結(jié)果按照客姓名升序排列:
       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
    語(yǔ)句的參數(shù)Query接口提供了定各Hib映射型的方法。
            setBinary()
            setString()
            setBoolean()
            setByte()
            setCalendar()
            setCharacter()
            setDate()
            setDouble()
            setText()
            setTime()
            setTimestamp()
            setEntity()//
    把參數(shù)與一個(gè)持久化的事例lsit result = session.createQuery("from order o where o.customer =            :customer").setEntity("customer" , customer).list ;
            setParameter()//
    定任意型的參數(shù)
            setProperties()//
    把命名參數(shù)與一個(gè)對(duì)象的屬性值綁 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) 評(píng)論(0)  編輯  收藏 所屬分類: hibernate
    主站蜘蛛池模板: 日本免费电影一区| 亚洲中文字幕无码av| 亚洲一区在线视频| 成av免费大片黄在线观看| 在线观看免费国产视频| 久久久久久久久久久免费精品| 国产一级特黄高清免费大片| 亚洲丰满熟女一区二区哦| 在线v片免费观看视频| 亚洲综合久久久久久中文字幕| 久久免费视频一区| 亚洲人成电影在线观看网| 无码精品A∨在线观看免费| 亚洲一区免费观看| 久久精品成人免费观看| 国产亚洲人成网站在线观看不卡| 人妻免费久久久久久久了| 亚洲成av人片天堂网老年人| 国产区图片区小说区亚洲区| 免费精品一区二区三区在线观看| 亚洲人成网站在线播放2019| 日韩成人免费在线| 一级毛片免费毛片一级毛片免费| 国产亚洲成av片在线观看| 国产成人免费网站在线观看| 免费一级毛片在线播放放视频 | 拔擦拔擦8x华人免费久久| 免费视频成人手机在线观看网址| 亚洲伦理一区二区| 日韩在线播放全免费| xxx毛茸茸的亚洲| 亚洲av中文无码乱人伦在线播放| 久久国产精品免费专区| 日韩毛片在线免费观看| 亚洲精品无码你懂的| 亚洲欧洲日产国产最新| 国产真人无遮挡作爱免费视频| 最近中文字幕完整免费视频ww| 2020天堂在线亚洲精品专区| 四虎影院永久免费观看| 岛国av无码免费无禁网站|