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

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

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

    posts - 495,comments - 227,trackbacks - 0
    +++在映射文件中定義命名查詢
    <class .. >
    </class>
    <query name="findCustomersByName"><![CDATA[
        from Customer c where c.name like :name
    ]]></query>
    語句:Query q=session.getNamedQuery("findCustomersByName");
         q.setString("name",name);
         List result=query.list();
    ++++ HQL Vs QBC 檢索方式

    比較運算
     . 檢索年齡大于18的Customer
         HQL  session.createQuery("from Customer cwhere c.age>18");
         QBC  Criteria criteria=session.createCriteria(Customer.class);
              criteria.add(Expression.gt("age",18));
    2 . 檢索年齡不等于 18的
        HQL session.createQuery("from Customer c where c.age<>18")
        QBC Criteria criteria =session.createCriteria(Customer.class);
            criteria.add(Expression.not(Expression.eq("age",new Integer(18))));
    3.  檢索姓名為空的Customer對象
       HQL  session.createQuery("from Customer c where c.name is null");
       QBC  Criteria criteria =session.createCriteria(Customer.class);
            criteria.add(Expression.isNull("name"));
    4. 檢索不屬于任何客戶的訂單
       HQL  session.createQuery("from Order o where o.customer is null");
       QBC  Criteria criteria =session.createCriteria(Order.class);
            criteria.add(Expression.isNull("customer"));
    5. HQL  Query q=session.createQuery("from Customer c where lower(c.name)='tom'");
            Query q=session.createQuery("from Customer c where upper(c.name)='TOM'");
       QBC  Criteria criteria =session.createCriteria(Customer.class);
            criteria.add(Expression.eq("name","tom").ignoreCase());
    范圍運算
    1. 檢查姓名為 Tom,Mike 或者Jack 的 Customer對象
        HQL session.createQuery("from Customer c where c.name in('Tom','Mike','Jack')");
        QBC Criteria criteria=session.createCriteria(Customer.class);
             String names[]={"Tom","Mike","Jack"};
             criteria.add(Expression.in("name",names));
    2. 檢查年齡在 18 到  25之間的Customer對象
       HQL session.createQuery("from Customer c where c.age between 18 and 25");
       QBC Criteria criteria=session.createCriteria(Customer.class);
           criteria.add(Expression.between("age",new Integer(18),newInteger(25)))
    3. 檢索年齡不在 18到  25之間的Customer對象;
       HQL session.createQuery("from Customer c where c.age not between 18 and 25");
       QBC Criteria criteria=session.createCriteria(Customer.class);
           criteria.add(Expression.not(Expression.between("age",new Integer(18),newInteger(25))))
    字符串模式匹配
    1. 檢索姓名以 "T"開頭的Customer對象
         HQL  session.createQuery("from Customer cwhere c.name like 'T%'");
         QBC  Criteria criteria=session.createCriteria(Customer.class);
              criteria.add(Expression.like("name","T%"));
               %表示  任意個字符
               _表示  一個字符
              Or
             criteria.add(Expression.like("name","T",MatchMode.START));
          MatchMode 類中有:
                           START    開頭
                           END      結尾
                           ANYWHERE 包含
                           EXACT    精確
    邏輯運算符
      Expression.and(Expression1,Expression2);
      Expression.or(Expression1,Expression2);
      
    連接查詢:::::
    1 . 映射文件中的配置
    lazy="true" 延遲加載
    fetch="select" 迫切加載
    2.
      2.1  迫切左外連接, HQL : from Customer c left join fetch c.orders o where c.name like 'T'");
                       QBC : criteria.setFetchMode("orders",FetchMode.EAGER); 迫切加載
         QBC 只支持 迫切左外連接,與內連接
      2.2  左外連接,    HQL : from Customer c left join c.orders where c.name like 'T%'
                        
      2.3 內連接     HQl :  from Customer c inner join c.orders o where c.name like 'T%'
              
      
    2.4 迫切內連接 ,  HQL:  from customer c inner join fetch c.orders o where c.name like 'T%'
    2.5 隱式內連接 , HQL :  from customer c where c.homeAddress.provice like '%hai'
    2.6 右外連接  ,   HQL :  from customer right outer join c.orders o where c.name like 'T%'

    報表查詢 :
       select new mypack.CustomerRow(c.id,c.name,o.orderNumber)
       from customer c join c.orders o
       where o.orderNumber like 'T%'

       distinct 關鍵字 消除重復關鍵字
       order by  asc||desc 排序
       group by 列    分組查詢
    posted on 2011-06-01 21:54 SIMONE 閱讀(938) 評論(0)  編輯  收藏 所屬分類: JAVA
    主站蜘蛛池模板: 国产成人久久AV免费| 免费视频一区二区| 久久久WWW免费人成精品| 国产无遮挡无码视频免费软件| 99视频在线免费| 国产精品色拉拉免费看| 国产无遮挡色视频免费视频| 亚洲成aⅴ人片久青草影院| 国产亚洲成av片在线观看 | 免费看男女下面日出水视频| 亚洲色欲久久久久综合网| 亚洲AV无码AV男人的天堂| 伊人久久五月丁香综合中文亚洲| 香蕉视频免费在线播放| 99在线免费观看| 香蕉97超级碰碰碰免费公| 免费v片在线观看品善网| 久久久久亚洲精品成人网小说| 2020天堂在线亚洲精品专区| 一级做a爰性色毛片免费| 少妇太爽了在线观看免费视频| 女人被免费视频网站| 亚洲桃色AV无码| 亚洲乱码在线观看| 中文在线观看免费网站| 免费人成网站在线观看10分钟| 亚洲精品无码永久在线观看| 一区二区三区亚洲| 香港一级毛片免费看| 最近中文字幕电影大全免费版| 国产免费看插插插视频| 久久久久亚洲av无码专区| 免费一级全黄少妇性色生活片 | 免费一级特黄特色大片在线观看| 亚洲av一综合av一区| 亚洲av日韩av永久在线观看| 黄色免费在线网站| 国产精品免费电影| 亚洲黄色在线观看网站| 在线播放国产不卡免费视频 | 99久久免费国产精品热|