亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Criterion & DetachedCriteria

2019-11-14 22:12:22
字體:
來源:轉載
供稿:網友
Criterion & DetachedCriteria

今天筆記主要是記錄筆記,以及代碼: 

criteria: 創建查詢接口:createCriteria(class)查詢條件接口:add(各種條件);Restrictions 提供了設置參數的各種接口邏輯運算 not or and 字符串模式匹配 like ilike范圍運算 in not in between between and 比較運算 eq/le/lt.....集合運算 isNotEmpty可以鏈式編程List grades=session.createCriteria(Grade.class).add(Restrictions.or(Restrictions.eq("gradename", "一年級"), Restrictions.le("gradeid", 3))).list();

關于各種方法的使用,代碼中都有注釋

注解配置:可以在啟動AnnotationConfiguration時在數據庫創建配置的表

注解:

 需要引入四個包:

   

 1 package entity; 2 import java.io.Serializable; 3 import javax.persistence.*; 4  5 @Entity 6 @Table(name="test_g") 7 public class TestNoteGrade implements Serializable{ 8     PRivate Integer id ; 9     private String name;10     @Id11     @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="seq_grade")12     @SequenceGenerator(name="seq_grade",sequenceName="seq_gradeid",allocationSize=1,initialValue=1)13     public Integer getId() {14         return id;15     }16     17     public void setId(Integer id) {18         this.id = id;19     }20     @Basic21     public String getName() {22         return name;23     }24     public void setName(String name) {25         this.name = name;26     }27     28     29     30     31 }

  在hibernate中需要配置 mapping:

    <mapping class="entity.TestNoteGrade"/>

  還有種生成實體類與映射文件的方法:

    反推(用myeclipse來操作)

java 測試代碼:

  1 package test4Criteria;  2   3 import java.util.ArrayList;  4 import java.util.List;  5 import java.util.Set;  6   7 import junit.framework.TestCase;  8 import org.hibernate.Criteria;  9 import org.hibernate.Session; 10 import org.hibernate.cfg.AnnotationConfiguration; 11 import org.hibernate.criterion.Criterion; 12 import org.hibernate.criterion.DetachedCriteria; 13 import org.hibernate.criterion.Order; 14 import org.hibernate.criterion.Projections; 15 import org.hibernate.criterion.Property; 16 import org.hibernate.criterion.Restrictions; 17  18 import entity.Grade; 19 import entity.Student; 20 import entity.TrStudent; 21  22 import util.HibernateUtil; 23  24 public class Criterion01 extends TestCase{ 25     Session session=null; 26      27      28      29     /** 30      * critertion 查詢 31      */ 32     public void testCriterion1(){ 33         try { 34             session=HibernateUtil.currentSession(); 35             session.beginTransaction(); 36             //查詢整個類 37             List grade=session.createCriteria(Grade.class).list(); 38             for(int i=0;i<grade.size();i++){ 39                 Grade gra=(Grade)grade.get(i); 40                 System.out.println(gra); 41                  42             } 43              44              45         } catch (Exception e) { 46             // TODO: handle exception 47             e.printStackTrace(); 48         }finally{ 49             HibernateUtil.closeSession(); 50         } 51         try { 52             session=HibernateUtil.currentSession(); 53             session.beginTransaction(); 54             //查詢指定值 55             List grade=session.createCriteria(Grade.class)// 56                         .add(Restrictions.eq("gradename","一年級"))// 57                         .list(); 58             for(int i=0;i<grade.size();i++){ 59                 Grade gra=(Grade)grade.get(i); 60                 System.out.println(gra); 61                  62             } 63              64              65         } catch (Exception e) { 66             // TODO: handle exception 67             e.printStackTrace(); 68         }finally{ 69             HibernateUtil.closeSession(); 70         } 71          72     } 73     /** 74      * 比較運算 75      */ 76     public void testCriterion2(){ 77         try { 78             session=HibernateUtil.currentSession(); 79             session.beginTransaction(); 80             //大于條件 81             List grades=session.createCriteria(Grade.class).add(Restrictions.gt("gradeid", 2)).list(); 82              83             for(int i=0;i<grades.size();i++){ 84                 System.out.println((Grade)grades.get(i)); 85                  86             } 87         } catch (Exception e) { 88             // TODO: handle exception 89             e.printStackTrace(); 90         }finally{ 91             HibernateUtil.closeSession(); 92              93         } 94         System.out.println("---大于等于條件--------------------"); 95         try { 96             session=HibernateUtil.currentSession(); 97             session.beginTransaction(); 98             //大于等于條件 99             List grades=session.createCriteria(Grade.class).add(Restrictions.ge("gradeid", 2)).list();100             101             for(int i=0;i<grades.size();i++){102                 System.out.println((Grade)grades.get(i));103                 104             }105         } catch (Exception e) {106             // TODO: handle exception107             e.printStackTrace();108         }finally{109             HibernateUtil.closeSession();110             111         }112         113         System.out.println("---小于等于條件--------------------");114         try {115             session=HibernateUtil.currentSession();116             session.beginTransaction();117             //大于等于條件118             List grades=session.createCriteria(Grade.class).add(Restrictions.le("gradeid", 2)).list();119             120             for(int i=0;i<grades.size();i++){121                 System.out.println((Grade)grades.get(i));122                 123             }124         } catch (Exception e) {125             // TODO: handle exception126             e.printStackTrace();127         }finally{128             HibernateUtil.closeSession();129             130         }131         System.out.println("---等于空--------------------");132         try {133             session=HibernateUtil.currentSession();134             session.beginTransaction();135             //大于等于條件136             List grades=session.createCriteria(Grade.class).add(Restrictions.isNull("gradeid")).list();137             138             for(int i=0;i<grades.size();i++){139                 System.out.println((Grade)grades.get(i));140                 141             }142         } catch (Exception e) {143             // TODO: handle exception144             e.printStackTrace();145         }finally{146             HibernateUtil.closeSession();147             148         }149         150     }151     /**152      * 范圍運算153      */154     public void testCriterion3(){155         try {156             session=HibernateUtil.currentSession();157             session.beginTransaction();158             Object[] obj={1,2,3};159             //in160             List grades=session.createCriteria(Grade.class)//161                     .add(Restrictions.in("gradeid",obj))//162                     .list();163             for(int i=0;i<grades.size();i++){164                 System.out.println((Grade)grades.get(i));165                 166             }167         } catch (Exception e) {168             // TODO: handle exception169             e.printStackTrace();170         }171         finally{172             HibernateUtil.closeSession();173             174         }175         System.out.println("-----not--in------");176         try {177             session=HibernateUtil.currentSession();178             session.beginTransaction();179             Object[] obj={1,2,3};180             //in181             List grades=session.createCriteria(Grade.class)//182                     .add(Restrictions.not(Restrictions.in("gradeid",obj)))//183                     .list();184             for(int i=0;i<grades.size();i++){185                 System.out.println((Grade)grades.get(i));186                 187             }188         } catch (Exception e) {189             // TODO: handle exception190             e.printStackTrace();191         }192         finally{193             HibernateUtil.closeSession();194             195         }196         197         System.out.println("--not-between- and--");198         try {199             session=HibernateUtil.currentSession();200             session.beginTransaction();201             Object[] obj={1,2,3};202             //in203             List grades=session.createCriteria(Grade.class)//204                     .add(Restrictions.not(Restrictions.between("gradeid",1,3)))//205                     .list();206             for(int i=0;i<grades.size();i++){207                 System.out.println((Grade)grades.get(i));208                 209             }210         } catch (Exception e) {211             // TODO: handle exception212             e.printStackTrace();213         }214         finally{215             HibernateUtil.closeSession();216             217         }218         219         System.out.println("---between- and--");220         try {221             session=HibernateUtil.currentSession();222             session.beginTransaction();223             Object[] obj={1,2,3};224             //in225             List grades=session.createCriteria(Grade.class)//226                         .add(Restrictions.between("gradeid",1,3))//227                         .list();228             for(int i=0;i<grades.size();i++){229                 System.out.println((Grade)grades.get(i));230                 231             }232         } catch (Exception e) {233             // TODO: handle exception234             e.printStackTrace();235         }236         finally{237             HibernateUtil.closeSession();238             239         }240     }241     242     /**243      * 字符串模式匹配  like ilike  244      */245     public void testCriterion4(){246         try {247             session=HibernateUtil.currentSession();248             session.beginTransaction();249             String scase="ab";250             List student=session.createCriteria(Student.class).add(Restrictions.like("name", "%"+scase+"%")).list();251             for(int i=0;i<student.size();i++){252                     Student stu=(Student)student.get(i);253                     String name=stu.getName();254                     System.out.print(name.substring(0, name.indexOf(scase)));255                     System.err.print(name.substring(name.indexOf(scase),(name.indexOf(scase)+scase.length())));256                     if(name.indexOf(scase)==name.length()-scase.length()){257                         System.out.println("");258                         259                     }260                     System.out.println(name.substring(name.indexOf(scase)+scase.length(),name.length()));261                     262             }263         264         } catch (Exception e) {265             // TODO: handle exception266         }finally{267             HibernateUtil.closeSession();268             269         }270         System.out.println("------ilike----------");271         try {272             session=HibernateUtil.currentSession();273             session.beginTransaction();274             String scase="eli";275             List student=session.createCriteria(Student.class).add(Restrictions.ilike("name", "%"+scase+"%")).list();276             for(int i=0;i<student.size();i++){277                 Student stu=(Student)student.get(i);278                 String name=stu.getName().toLowerCase();279                 System.out.print(name.substring(0, name.indexOf(scase)));280                 System.err.print(name.substring(name.indexOf(scase),(name.indexOf(scase)+scase.length())));281                 if(name.indexOf(scase)==name.length()-scase.length()){282                     System.out.println("");283                     284                 }285                 System.out.println(name.substring(name.indexOf(scase)+scase.length(),name.length()));286                 287             }288         } catch (Exception e) {289             // TODO: handle exception290         }finally{291             HibernateUtil.closeSession();292             293         }294     }295     /**296      * 邏輯運算297      */298     public void testCriterion5(){299         try {300             session=HibernateUtil.currentSession();301             session.beginTransaction();302             List grades=session.createCriteria(Grade.class).add(Restrictions.and(Restrictions.eq("gradename", "一年級"), Restrictions.le("gradeid", 5))).list();303             for(int i=0;i<grades.size();i++){304                 System.out.println(grades.get(i));305                 306             }307         } catch (Exception e) {308             // TODO: handle exception309             e.printStackTrace();310         }finally{311             HibernateUtil.closeSession();312             313         }314         System.out.println("-------or-----------");315         try {316             session=HibernateUtil.currentSession();317             session.beginTransaction();318             List grades=session.createCriteria(Grade.class).add(Restrictions.or(Restrictions.eq("gradename", "一年級"), Restrictions.le("gradeid", 3))).list();319             for(int i=0;i<grades.size();i++){320                 System.out.println(grades.get(i));321                 322             }323         } catch (Exception e) {324             // TODO: handle exception325             e.printStackTrace();326         }finally{327             HibernateUtil.closeSession();328             329         }330         System.out.println("-------not-----------");331         try {332             session=HibernateUtil.currentSession();333             session.beginTransaction();334             List grades=session.createCriteria(Grade.class).add(Restrictions.not(Restrictions.eq("gradename", "一年級"))).list();335             for(int i=0;i<grades.size();i++){336                 System.out.println(grades.get(i));337                 338             }339         } catch (Exception e) {340             // TODO: handle exception341             e.printStackTrace();342         }finally{343             HibernateUtil.closeSession();344             345         }346         347     }348     /**349      * 集合運算350      */351     public void testCriterion6(){352         try {353             session=HibernateUtil.currentSession();354             session.beginTransaction();355             List grades=session.createCriteria(Grade.class).add(Restrictions.isNotEmpty("stu")).list();356             for(int i=0;i<grades.size();i++){357                 System.out.println(((Grade)grades.get(i)).getStu());358             }359             360             361         } catch (Exception e) {362             // TODO: handle exception363             e.printStackTrace();364         }finally{365             HibernateUtil.closeSession();366             367         }368     }369     370     /**371      * 動態查詢372      */373     public void testTrends(){374         try {375             session=HibernateUtil.currentSession();376             session.beginTransaction();377             TrStudent tr=new TrStudent();378             tr.setName("%eli%");379             tr.setStartGrade(1);380             tr.setEndGrade(3);381             Criteria cri= session.createCriteria(Student.class);382             if(tr.getName()!=null){383                 cri.add(Restrictions.like("name", tr.getName()));384             }if(tr.getStartGrade()!=null&&tr.getEndGrade()!=null){385                 cri.add(Restrictions.between("gradeid",tr.getStartGrade(),tr.getEndGrade()));386                 387             }if(tr.getStartGrade()!=null&&tr.getEndGrade()==null){388                 cri.add(Restrictions.ge("gradeid",tr.getStartGrade()));389                 390             }391             if(tr.getStartGrade()==null&&tr.getEndGrade()!=null){392                 cri.add(Restrictions.le("gradeid",tr.getEndGrade()));393                 394             }395             List student=cri.addOrder(Order.asc("gradeid")).setMaxResults(80).list();396             //根據年級排序,每頁顯示十條397             Integer pagesize=10;398             Integer page=1;399             System.out.println(student.size()/pagesize);400             for(int i=0;i<student.size()/pagesize;i++){401                 System.out.println("--------第 "+page+" 頁-------------");402                 List students=cri.addOrder(Order.asc("gradeid")).setFirstResult(pagesize*(page-1)).setMaxResults(pagesize).list();403                 page++;404                 for(int j=0;j<students.size();j++){405                     System.out.println(students.get(j));406                 }407                 System.out.println(page);408                 409                 410                 411             }412             413             414         } catch (Exception e) {415             // TODO: handle exception416             e.printStackTrace();417         }finally{418             HibernateUtil.closeSession();419         }420         421         422     }423     /**424      * 鏈接查詢425      */426     public void testrelevance(){427         try {428             session=HibernateUtil.currentSession();429             session.beginTransaction();430             List student=session.createCriteria(Student.class).createCriteria("grade").addOrder(Order.asc("gradeid")).setMaxResults(20).list();431             for(int i=0;i<student.size();i++){432                 System.out.println(student.get(i)+"/t"+((Student)student.get(i)).getGrade().getGradename());433             }434             435             436             437         } catch (Exception e) {438             // TODO: handle exception439             e.printStackTrace();440         }finally{441             HibernateUtil.closeSession();442         }443         System.out.println("---createAlias()查詢---");444         try {445             session=HibernateUtil.currentSession();446             session.beginTransaction();447             List student=session.createCriteria(Student.class,"s").createAlias("grade","g").addOrder(Order.asc("s.gradeid")).setMaxResults(20).list();448             for(int i=0;i<student.size();i++){449                 System.out.println(student.get(i)+"/t"+((Student)student.get(i)).getGrade().getGradename());450             }451             452         } catch (Exception e) {453             // TODO: handle exception454             e.printStackTrace();455         }finally{456             HibernateUtil.closeSession();457         }458     }459 460     /**461      * 投影查詢462      */463     public void testProj(){464         System.out.println("--查詢記錄總數--");465         try {466             session=HibernateUtil.currentSession();467             session.beginTransaction();468             //查詢所有年級名稱469             Object obj=session.createCriteria(Grade.class)470                     .setProjection(Projections.projectionList().add(Projections.rowCount()))471                     .list();472             System.out.println("所有班級:"+obj);473             474         } catch (Exception e) {475             // TODO: handle exception476             e.printStackTrace();477         }finally{478             HibernateUtil.closeSession();479         }480         481         System.out.println("--查詢班級名稱--");482         try {483             session=HibernateUtil.currentSession();484             session.beginTransaction();485             //查詢所有年級名稱486             Object obj=session.createCriteria(Grade.class)487                     .setProjection(Projections.projectionList().add(Property.forName("gradename")))488                     .list();489             System.out.println(obj);490             491         } catch (Exception e) {492             // TODO: handle exception493             e.printStackTrace();494         }finally{495             HibernateUtil.closeSession();496         }497     }498     499     /**500      * DetachedCriteria 離線查詢501      */502     public void testoff_line(){503         try {504             //這段代碼一般放在web產生查詢條件505             DetachedCriteria det=DetachedCriteria.forClass(Student.class,"s")506                     .createAlias("s.grade", "g")507                     .add(Restrictions.eq("g.gradename", "幼兒園"));508             509             //數據訪問層510             session=HibernateUtil.currentSession();511             session.beginTransaction();512             List students=det.getExecutableCriteria(session).add(Restrictions.ilike("s.name","%yap%")).setMaxResults(50).list();513             //打印514             for(int i=0;i<students.size();i++){515                 System.out.println(students.get(i)+"/t"+((Student)students.get(i)).getGrade().getGradename());516             }517             518         } catch (Exception e) {519             // TODO: handle exception520             e.printStackTrace();521         }finally{522             HibernateUtil.closeSession();523             524         }525     }526     /**注解 的效果527      * 啟動時會在數據庫創建一個表528      */529     public void testNote(){530         try {531             AnnotationConfiguration anc=new AnnotationConfiguration().configure();532             session=anc.buildSessionFactory().openSession();533             session.beginTransaction();534             session.getTransaction().commit();535         } catch (Exception e) {536             // TODO: handle exception537             e.printStackTrace();538             session.getTransaction().rollback();539         }finally{540             session.close();541         }542         543     }544     545     546     547     548     549     550 }
Criterion&DetachedCriteria


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
这里只有精品丝袜| 韩曰欧美视频免费观看| 1769国产精品| 日韩精品中文字幕在线观看| 亚洲影视中文字幕| 日韩av在线不卡| 亚洲女人天堂色在线7777| 精品国产视频在线| 久久国产精品久久国产精品| 色哟哟亚洲精品一区二区| 久久精品最新地址| 亚洲精品日韩在线| 第一福利永久视频精品| 亚洲精品国精品久久99热| 国产亚洲精品日韩| 性金发美女69hd大尺寸| 欧美日韩中文字幕在线视频| 日韩av大片免费看| 一区二区欧美亚洲| 亚洲成人免费网站| 成人精品久久久| 久久av资源网站| 亚洲第一中文字幕在线观看| 黄色一区二区在线观看| 国产欧美精品日韩精品| 成人午夜激情免费视频| 国产精品激情av电影在线观看| 中文字幕欧美精品在线| 日韩av免费观影| 久久久国产精彩视频美女艺术照福利| 欧美日韩精品二区| 久久久久国产一区二区三区| 欧美亚洲一级片| 浅井舞香一区二区| 精品国产自在精品国产浪潮| 久久久精品在线观看| 97视频国产在线| 欧美二区在线播放| 亚洲第一福利网站| 欧美在线免费看| 亚洲精品美女久久| 情事1991在线| 国产手机视频精品| 亚洲欧洲在线播放| 日韩一区二区精品视频| 国产欧美精品日韩| 国产精品麻豆va在线播放| 亚洲网站在线观看| 日韩三级成人av网| 国产精品福利在线观看| 国产日韩欧美视频在线| 国产成人福利夜色影视| 欧美特黄级在线| 久久艳片www.17c.com| 久久成人综合视频| 国产手机视频精品| 奇米一区二区三区四区久久| 91精品久久久久久综合乱菊| 欧美日本高清视频| 亚洲视频专区在线| 自拍视频国产精品| 91中文在线视频| 亚洲天堂久久av| 国产精品稀缺呦系列在线| 91精品视频在线| 45www国产精品网站| 中文字幕av一区二区三区谷原希美| 亚洲精品美女网站| 伊人久久久久久久久久久久久| 最近2019免费中文字幕视频三| 欧美人成在线视频| 亚洲曰本av电影| 欧美成人高清视频| 日韩小视频在线观看| 中文字幕在线日韩| 亚洲精品一区久久久久久| 人人爽久久涩噜噜噜网站| 欧美日韩免费在线| 久久免费国产精品1| 日韩小视频网址| 亚洲奶大毛多的老太婆| 在线视频一区二区| 日韩电影大片中文字幕| 国产精品美腿一区在线看| 欧美日韩在线视频观看| 一二美女精品欧洲| 国产精品美女呻吟| 久久久在线视频| 国产精品第1页| 国产精品爱啪在线线免费观看| 亚洲免费视频观看| 欧美综合激情网| 亚洲精品视频中文字幕| 久久久国产精品一区| 国产精品九九久久久久久久| 欧美做爰性生交视频| 日韩精品在线免费观看视频| 国产91成人在在线播放| 欧美裸体xxxx极品少妇| 亲爱的老师9免费观看全集电视剧| 国产精品美女av| 欧美福利小视频| 成人做爰www免费看视频网站| 7m精品福利视频导航| 国产91对白在线播放| 成人久久一区二区| 亚洲精品电影在线| 欧美另类69精品久久久久9999| 亚洲国产黄色片| 成人字幕网zmw| 91精品国产综合久久久久久久久| 国产成人精品亚洲精品| 久久免费成人精品视频| 久久人人爽人人爽人人片av高清| 国产免费亚洲高清| 最近2019年手机中文字幕| 成人国内精品久久久久一区| 91超碰caoporn97人人| 国产热re99久久6国产精品| 日韩欧美国产免费播放| 综合网中文字幕| 国产精品电影网站| 国产精品丝袜久久久久久高清| 亚洲精品国产拍免费91在线| 欧美激情视频给我| 久久久久久综合网天天| 国产精品电影久久久久电影网| 日韩av在线免费| 日本一区二区三区四区视频| 色综合视频网站| 国产精品大片wwwwww| 亚洲成人精品视频| 久久99精品久久久久久噜噜| xxx成人少妇69| 午夜精品福利在线观看| 久久这里有精品| 国产免费一区二区三区在线观看| 欧美一区二区.| 1769国内精品视频在线播放| 91高清在线免费观看| 亚洲男人天堂网站| 成人97在线观看视频| 日韩精品免费电影| 国产精品老牛影院在线观看| 国产美女精品免费电影| 午夜精品国产精品大乳美女| 97免费视频在线| 亚洲深夜福利在线| 亚洲第一精品电影| 九九热这里只有精品免费看| 青青久久aⅴ北条麻妃| 久久久久国产视频| 日韩国产中文字幕| 欧美亚洲第一页| 国产精品久久久久久一区二区| 久久久久久久999精品视频| 亚洲美女喷白浆| 国产日本欧美一区二区三区在线| 国产视频精品xxxx| 狠狠色香婷婷久久亚洲精品| 美女视频久久黄| 日韩av不卡电影| 亚洲欧美在线x视频| 亚洲色图偷窥自拍|