Hibernate-Criteria查询

Criteria条件查询

使用Criteria查询包括以下步骤:

(1).使用Session接口的createCriteria()方法创建Criteria对象。

(2).使用Restrictions类提供的静态方法设置查询条件,这些静态方法放回Criterion对象,一个Criterion对象代表一个查询条件。Criteria接口的add()方法用来添加查询条件。

(3).使用Criteria接口的list()方法执行查询语句,list()方法返回java.util.List类型的结果,List集合中的每个元素都是持久化对象。

 1 package com.accp.test;
 2 
 3 import java.util.List;
 4 import org.hibernate.Criteria;
 5 import org.hibernate.Session;
 6 import org.hibernate.cfg.Configuration;
 7 import com.accp.entity.Emp;
 8 
 9 /**
10  * Hibernate-Criteria查询
11  * 
12  * @author 孙洪雨
13  */
14 public class test {
15     Configuration conf = null;
16     Session session = null;
17 
18     /**
19      * Criteria查询所有员工信息
20      */
21     public void show() {
22         conf = new Configuration().configure();// 读取Hibernate配置文件
23         session = conf.buildSessionFactory().openSession();// 打开Session
24         Criteria criteria = session.createCriteria(Emp.class);// 查询Emp表
25         List<Emp> list = criteria.list();
26         for (Emp item : list) {
27             // 使用for循环遍历所有用户信息
28             System.out.println("姓名:" + item.getEname() + "\t工资:" + item.getSal());
29         }
30     }
31 
32     public static void main(String[] args) {
33         test t = new test();
34         t.show();
35     }
36 
37 }
Criteria查询(无条件)

 --使用Criteria接口的add()方法用来添加查询条件。

 1 package com.accp.test;
 2 
 3 import java.util.List;
 4 
 5 import org.hibernate.Criteria;
 6 import org.hibernate.Session;
 7 import org.hibernate.cfg.Configuration;
 8 import org.hibernate.criterion.Restrictions;
 9 
10 import com.accp.entity.Emp;
11 
12 /**
13  * Hibernate-Criteria查询
14  * 
15  * @author 孙洪雨
16  */
17 public class test {
18     Configuration conf = null;
19     Session session = null;
20 
21     /**
22      * Criteria查询所有员工信息
23      */
24     public void show() {
25         conf = new Configuration().configure();// 读取Hibernate配置文件
26         session = conf.buildSessionFactory().openSession();// 打开Session
27         Criteria criteria = session.createCriteria(Emp.class);// 查询Emp表
28         criteria.add(Restrictions.eq("job", "SALESMAN"));//添加查询条件为(job等于SALESMAN)的员工
29         List<Emp> list = criteria.list();
30         for (Emp item : list) {
31             // 使用for循环遍历(job等于SALESMAN)的员工用户信息
32             System.out.println("姓名:" + item.getEname() + "\t工资:" + item.getSal()+"\t部门:"+item.getJob());
33         }
34     }
35 
36     public static void main(String[] args) {
37         test t = new test();
38         t.show();
39     }
40 
41 }
Criteria查询(带条件)

--使用ignoreCase()方法忽略大小写。类型必须是字符型,其他会报错!

 1 package com.accp.test;
 2 
 3 import java.util.List;
 4 
 5 import org.hibernate.Criteria;
 6 import org.hibernate.Session;
 7 import org.hibernate.cfg.Configuration;
 8 import org.hibernate.criterion.Restrictions;
 9 
10 import com.accp.entity.Emp;
11 
12 /**
13  * Hibernate-Criteria查询
14  * 
15  * @author 孙洪雨
16  */
17 public class test {
18     Configuration conf = null;
19     Session session = null;
20 
21     /**
22      * Criteria查询所有员工信息
23      */
24     public void show() {
25         conf = new Configuration().configure();// 读取Hibernate配置文件
26         session = conf.buildSessionFactory().openSession();// 打开Session
27         Criteria criteria = session.createCriteria(Emp.class);// 查询Emp表
28         criteria.add(Restrictions.eq("job", "SALESMAN").ignoreCase());//添加查询条件为(job等于SALESMAN(忽略大小写))的员工
29         List<Emp> list = criteria.list();
30         for (Emp item : list) {
31             // 使用for循环遍历(job等于SALESMAN)的员工用户信息
32             System.out.println("姓名:" + item.getEname() + "\t工资:" + item.getSal()+"\t部门:"+item.getJob());
33         }
34     }
35 
36     public static void main(String[] args) {
37         test t = new test();
38         t.show();
39     }
40 
41 }
Criteria查询(ignoreCase()方法使用

--Criteria支持的范围运算(in列表)、(not in列表)、between 值1 and 值2、 not between 值1 and 值2

 1 package com.accp.test;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import org.hibernate.Criteria;
 7 import org.hibernate.Session;
 8 import org.hibernate.cfg.Configuration;
 9 import org.hibernate.criterion.Restrictions;
10 
11 import com.accp.entity.Emp;
12 
13 /**
14  * Hibernate-Criteria查询
15  * 
16  * @author 孙洪雨
17  */
18 public class test {
19     Configuration conf = null;
20     Session session = null;
21     /**
22      * Criteria查询所有员工信息
23      */
24     public void show() {
25         conf = new Configuration().configure();// 读取Hibernate配置文件
26         session = conf.buildSessionFactory().openSession();// 打开Session
27         Criteria criteria = session.createCriteria(Emp.class);// 查询Emp表
28         List<Short>empnos=new ArrayList<Short>();
29         empnos.add(new Short("7369"));
30         empnos.add(new Short("7499"));
31         empnos.add(new Short("7521"));
32         criteria.add(Restrictions.in("empno", empnos));//查询empno在empnos列表中的员工信息
33         List<Emp> list = criteria.list();
34         for (Emp item : list) {
35             // 使用for循环遍历(符合empnps列表)的员工用户信息
36             System.out.println("姓名:" + item.getEname() + "\t工资:" + item.getSal()+"\t部门:"+item.getJob());
37         }
38     }
39 
40     public static void main(String[] args) {
41         test t = new test();
42         t.show();
43     }
44 
45 }
Criteria查询(in)
 1 package com.accp.test;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import org.hibernate.Criteria;
 7 import org.hibernate.Session;
 8 import org.hibernate.cfg.Configuration;
 9 import org.hibernate.criterion.Restrictions;
10 
11 import com.accp.entity.Emp;
12 
13 /**
14  * Hibernate-Criteria查询
15  * 
16  * @author 孙洪雨
17  */
18 public class test {
19     Configuration conf = null;
20     Session session = null;
21     /**
22      * Criteria查询所有员工信息
23      */
24     public void show() {
25         conf = new Configuration().configure();// 读取Hibernate配置文件
26         session = conf.buildSessionFactory().openSession();// 打开Session
27         Criteria criteria = session.createCriteria(Emp.class);// 查询Emp表
28         List<Short>empnos=new ArrayList<Short>();
29         empnos.add(new Short("7369"));
30         empnos.add(new Short("7499"));
31         empnos.add(new Short("7521"));
32         criteria.add(Restrictions.not(Restrictions.in("empno", empnos)) );//查询empno不在empnos列表中的员工信息
33         List<Emp> list = criteria.list();
34         for (Emp item : list) {
35             // 使用for循环遍历(不符合empnps列表)的员工用户信息
36             System.out.println("姓名:" + item.getEname() + "\t工资:" + item.getSal()+"\t部门:"+item.getJob());
37         }
38     }
39 
40     public static void main(String[] args) {
41         test t = new test();
42         t.show();
43     }
44 
45 }
Criteria查询(not in)
 1 package com.accp.test;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import org.hibernate.Criteria;
 7 import org.hibernate.Session;
 8 import org.hibernate.cfg.Configuration;
 9 import org.hibernate.criterion.Restrictions;
10 
11 import com.accp.entity.Emp;
12 
13 /**
14  * Hibernate-Criteria查询
15  * 
16  * @author 孙洪雨
17  */
18 public class test {
19     Configuration conf = null;
20     Session session = null;
21     /**
22      * Criteria查询所有员工信息
23      */
24     public void show() {
25         conf = new Configuration().configure();// 读取Hibernate配置文件
26         session = conf.buildSessionFactory().openSession();// 打开Session
27         Criteria criteria = session.createCriteria(Emp.class);// 查询Emp表
28         criteria.add(Restrictions.between("empno", new Short("7369"), new Short("7869")));//查询empno在7369-7869之间的员工信息
29         List<Emp> list = criteria.list();
30         for (Emp item : list) {
31             // 使用for循环遍历(empno在7369-7869之间)的员工用户信息
32             System.out.println("姓名:" + item.getEname() + "\t工资:" + item.getSal()+"\t部门:"+item.getJob()+"\t编号:"+item.getEmpno());
33         }
34     }
35 
36     public static void main(String[] args) {
37         test t = new test();
38         t.show();
39     }
40 
41 }
Criteria查询(between 值1 and 值2)
 1 package com.accp.test;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import org.hibernate.Criteria;
 7 import org.hibernate.Session;
 8 import org.hibernate.cfg.Configuration;
 9 import org.hibernate.criterion.Restrictions;
10 
11 import com.accp.entity.Emp;
12 
13 /**
14  * Hibernate-Criteria查询
15  * 
16  * @author 孙洪雨
17  */
18 public class test {
19     Configuration conf = null;
20     Session session = null;
21     /**
22      * Criteria查询所有员工信息
23      */
24     public void show() {
25         conf = new Configuration().configure();// 读取Hibernate配置文件
26         session = conf.buildSessionFactory().openSession();// 打开Session
27         Criteria criteria = session.createCriteria(Emp.class);// 查询Emp表
28         criteria.add(Restrictions.not(Restrictions.between("empno", new Short("7369"), new Short("7869"))));//查询empno不在7369-7869之间的员工信息
29         List<Emp> list = criteria.list();
30         for (Emp item : list) {
31             // 使用for循环遍历(不符合empno在7369-7869之间)的员工用户信息
32             System.out.println("姓名:" + item.getEname() + "\t工资:" + item.getSal()+"\t部门:"+item.getJob()+"\t编号:"+item.getEmpno());
33         }
34     }
35 
36     public static void main(String[] args) {
37         test t = new test();
38         t.show();
39     }
40 
41 }
Criteria查询(not between 值1 and 值2)

 --Criteria支持的字符串模式匹配 like、ilike(忽略大小写)

 1 package com.accp.test;
 2 
 3 import java.util.ArrayList;
 4 import java.util.List;
 5 
 6 import org.hibernate.Criteria;
 7 import org.hibernate.Session;
 8 import org.hibernate.cfg.Configuration;
 9 import org.hibernate.criterion.Restrictions;
10 
11 import com.accp.entity.Emp;
12 
13 /**
14  * Hibernate-Criteria查询
15  * 
16  * @author 孙洪雨
17  */
18 public class test {
19     Configuration conf = null;
20     Session session = null;
21     /**
22      * Criteria查询所有员工信息
23      */
24     public void show() {
25         conf = new Configuration().configure();// 读取Hibernate配置文件
26         session = conf.buildSessionFactory().openSession();// 打开Session
27         Criteria criteria = session.createCriteria(Emp.class);// 查询Emp表
28         criteria.add(Restrictions.like("ename", "S%"));//查询ename以S开头的员工信息
29         List<Emp> list = criteria.list();
30         for (Emp item : list) {
31             // 使用for循环遍历(ename以S开头的员工信息)的员工用户信息
32             System.out.println("姓名:" + item.getEname() + "\t工资:" + item.getSal()+"\t部门:"+item.getJob()+"\t编号:"+item.getEmpno());
33         }
34     }
35 
36     public static void main(String[] args) {
37         test t = new test();
38         t.show();
39     }
40 
41 }
Criteria查询(like)

 --Criteria支持的逻辑运算 and、or、not

 

Hibernate-Criteria查询,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。