所有项目导入对应的hibernate的jar包、mysql的jar包和添加每次都需要用到的HibernateUtil.java
第一节:Hibernate 查询方式简介
1,导航对象图查询方式;
2,OID 查询方式;
3,本地SQL 查询方式;
4,HQL 查询方式;
5,QBC 查询方式;(Query By Criteria)
第二节:本地SQL 查询方式
Student.java
1 packagecom.wishwzp.model;2
3 public classStudent {4
5 private intid;6 privateString name;7 private intage;8
9 public intgetId() {10 returnid;11 }12 public void setId(intid) {13 this.id =id;14 }15 publicString getName() {16 returnname;17 }18 public voidsetName(String name) {19 this.name =name;20 }21 public intgetAge() {22 returnage;23 }24 public void setAge(intage) {25 this.age =age;26 }27 @Override28 publicString toString() {29 return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";30 }31
32 }
Student.hbm.xml
1 <?xml version="1.0"?>
2 "-//Hibernate/Hibernate Mapping DTD 3.0//EN"4 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
5
6
7
8
9
10
11
12
13
14
15
16
17
hibernate.cfg.xml
1 <?xml version='1.0' encoding='utf-8'?>
2 "-//Hibernate/Hibernate Configuration DTD 3.0//EN"4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
5
6
7
8
9
10
11 com.mysql.jdbc.Driver
12 jdbc:mysql://localhost:3306/hibernate
13 root
14 123456
15
16
17
18 org.hibernate.dialect.MySQL5Dialect
19
20
21 true
22
23
24 update
25
26
27
28
29
30
31
32
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Query;8 importorg.hibernate.Session;9 importorg.hibernate.SessionFactory;10 importorg.junit.After;11 importorg.junit.Before;12 importorg.junit.Test;13
14 importcom.wishwzp.model.Student;15 importcom.wishwzp.util.HibernateUtil;16
17 public classStudentTest {18
19 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();20 privateSession session;21
22 @Before23 public void setUp() throwsException {24 session=sessionFactory.openSession(); //生成一个session
25 session.beginTransaction(); //开启事务
26 }27
28 @After29 public void tearDown() throwsException {30 session.getTransaction().commit(); //提交事务
31 session.close(); //关闭session
32 }33
34 @Test35 public voidtestSQLQuery() {36
37 }38
39
40 }
运行结果生成了数据库信息:
我们插入一些数据:
再次写代码查询里面的数据:
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Query;8 importorg.hibernate.Session;9 importorg.hibernate.SessionFactory;10 importorg.junit.After;11 importorg.junit.Before;12 importorg.junit.Test;13
14 importcom.wishwzp.model.Student;15 importcom.wishwzp.util.HibernateUtil;16
17 public classStudentTest {18
19 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();20 privateSession session;21
22 @Before23 public void setUp() throwsException {24 session=sessionFactory.openSession(); //生成一个session
25 session.beginTransaction(); //开启事务
26 }27
28 @After29 public void tearDown() throwsException {30 session.getTransaction().commit(); //提交事务
31 session.close(); //关闭session
32 }33
34 @Test35 public voidtestSQLQuery() {36 String sql="select * from t_student";37 Query query=session.createSQLQuery(sql).addEntity(Student.class);38 List studentList=query.list();39 Iterator it=studentList.iterator();40 while(it.hasNext()){41 Student s=(Student)it.next();42 System.out.println(s);43 }44 }45
46 }
运行结果显示:
我们写一个带参数的查询语句查询:
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Query;8 importorg.hibernate.Session;9 importorg.hibernate.SessionFactory;10 importorg.junit.After;11 importorg.junit.Before;12 importorg.junit.Test;13
14 importcom.wishwzp.model.Student;15 importcom.wishwzp.util.HibernateUtil;16
17 public classStudentTest {18
19 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();20 privateSession session;21
22 @Before23 public void setUp() throwsException {24 session=sessionFactory.openSession(); //生成一个session
25 session.beginTransaction(); //开启事务
26 }27
28 @After29 public void tearDown() throwsException {30 session.getTransaction().commit(); //提交事务
31 session.close(); //关闭session
32 }33
34 @Test35 public voidtestSQLQuery2() {36 String sql="select * from t_student where stuName like :stuName and stuAge=:stuAge";37 Query query=session.createSQLQuery(sql).addEntity(Student.class);38 query.setString("stuName", "张%");39 query.setInteger("stuAge", 10);40 List studentList=query.list();41 Iterator it=studentList.iterator();42 while(it.hasNext()){43 Student s=(Student)it.next();44 System.out.println(s);45 }46 }47
48 }
运行结果显示:
第三节:HQL 查询方式
HQL(Hibernate Query Language)是面向对象的查询语言;是使用最广的一种查询方式;
1,普通查询;
2,带条件查询;
3,使用别名;
4,对结果排序;
5,分页查询;
6,查询单个对象;
7,链式写法;
1,普通查询;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Query;8 importorg.hibernate.Session;9 importorg.hibernate.SessionFactory;10 importorg.junit.After;11 importorg.junit.Before;12 importorg.junit.Test;13
14 importcom.wishwzp.model.Student;15 importcom.wishwzp.util.HibernateUtil;16
17 public classStudentTest {18
19 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();20 privateSession session;21
22 @Before23 public void setUp() throwsException {24 session=sessionFactory.openSession(); //生成一个session
25 session.beginTransaction(); //开启事务
26 }27
28 @After29 public void tearDown() throwsException {30 session.getTransaction().commit(); //提交事务
31 session.close(); //关闭session
32 }33
34 @Test35 public voidtestHQLQuery() {36 String hql="from Student";37 Query query=session.createQuery(hql);38 List studentList=(List)query.list();39 Iterator it=studentList.iterator();40 while(it.hasNext()){41 Student s=(Student)it.next();42 System.out.println(s);43 }44 }45
46 }
运行结果显示:
2,带条件查询;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Query;8 importorg.hibernate.Session;9 importorg.hibernate.SessionFactory;10 importorg.junit.After;11 importorg.junit.Before;12 importorg.junit.Test;13
14 importcom.wishwzp.model.Student;15 importcom.wishwzp.util.HibernateUtil;16
17 public classStudentTest {18
19 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();20 privateSession session;21
22 @Before23 public void setUp() throwsException {24 session=sessionFactory.openSession(); //生成一个session
25 session.beginTransaction(); //开启事务
26 }27
28 @After29 public void tearDown() throwsException {30 session.getTransaction().commit(); //提交事务
31 session.close(); //关闭session
32 }33
34 @Test35 public voidtestHQLQuery2() {36 String hql="from Student where name like :stuName and age=:stuAge";37 Query query=session.createQuery(hql);38 query.setString("stuName", "张%");39 query.setInteger("stuAge", 10);40 List studentList=(List)query.list();41 Iterator it=studentList.iterator();42 while(it.hasNext()){43 Student s=(Student)it.next();44 System.out.println(s);45 }46 }47
48 }
运行结果显示:
Hibernate: select student0_.stuId as stuId1_0_, student0_.stuName as stuName2_0_, student0_.stuAge as stuAge3_0_ from t_student student0_ where (student0_.stuName like ?) and student0_.stuAge=?
Student [id=1, name=张三, age=10]
3,使用别名;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Query;8 importorg.hibernate.Session;9 importorg.hibernate.SessionFactory;10 importorg.junit.After;11 importorg.junit.Before;12 importorg.junit.Test;13
14 importcom.wishwzp.model.Student;15 importcom.wishwzp.util.HibernateUtil;16
17 public classStudentTest {18
19 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();20 privateSession session;21
22 @Before23 public void setUp() throwsException {24 session=sessionFactory.openSession(); //生成一个session
25 session.beginTransaction(); //开启事务
26 }27
28 @After29 public void tearDown() throwsException {30 session.getTransaction().commit(); //提交事务
31 session.close(); //关闭session
32 }33
34 @Test35 public voidtestHQLQuery3() {36 String hql="from Student as s where s.name like :stuName and s.age=:stuAge";37 Query query=session.createQuery(hql);38 query.setString("stuName", "张%");39 query.setInteger("stuAge", 10);40 List studentList=(List)query.list();41 Iterator it=studentList.iterator();42 while(it.hasNext()){43 Student s=(Student)it.next();44 System.out.println(s);45 }46 }47
48
49 }
运行结果显示:
Hibernate: select student0_.stuId as stuId1_0_, student0_.stuName as stuName2_0_, student0_.stuAge as stuAge3_0_ from t_student student0_ where (student0_.stuName like ?) and student0_.stuAge=?
Student [id=1, name=张三, age=10]
4,对结果排序;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Query;8 importorg.hibernate.Session;9 importorg.hibernate.SessionFactory;10 importorg.junit.After;11 importorg.junit.Before;12 importorg.junit.Test;13
14 importcom.wishwzp.model.Student;15 importcom.wishwzp.util.HibernateUtil;16
17 public classStudentTest {18
19 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();20 privateSession session;21
22 @Before23 public void setUp() throwsException {24 session=sessionFactory.openSession(); //生成一个session
25 session.beginTransaction(); //开启事务
26 }27
28 @After29 public void tearDown() throwsException {30 session.getTransaction().commit(); //提交事务
31 session.close(); //关闭session
32 }33
34 @Test35 public voidtestHQLQuery4() {36 String hql="from Student order by age desc";37 Query query=session.createQuery(hql);38 List studentList=(List)query.list();39 Iterator it=studentList.iterator();40 while(it.hasNext()){41 Student s=(Student)it.next();42 System.out.println(s);43 }44 }45
46
47 }
运行结果显示:
Hibernate: select student0_.stuId as stuId1_0_, student0_.stuName as stuName2_0_, student0_.stuAge as stuAge3_0_ from t_student student0_ order by student0_.stuAge desc
Student [id=2, name=李四, age=15]
Student [id=3, name=王五, age=13]
Student [id=1, name=张三, age=10]
5,分页查询;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Query;8 importorg.hibernate.Session;9 importorg.hibernate.SessionFactory;10 importorg.junit.After;11 importorg.junit.Before;12 importorg.junit.Test;13
14 importcom.wishwzp.model.Student;15 importcom.wishwzp.util.HibernateUtil;16
17 public classStudentTest {18
19 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();20 privateSession session;21
22 @Before23 public void setUp() throwsException {24 session=sessionFactory.openSession(); //生成一个session
25 session.beginTransaction(); //开启事务
26 }27
28 @After29 public void tearDown() throwsException {30 session.getTransaction().commit(); //提交事务
31 session.close(); //关闭session
32 }33
34 @Test35 public voidtestHQLQuery5() {36 String hql="from Student";37 Query query=session.createQuery(hql);38 query.setFirstResult(1);39 query.setMaxResults(2);40 List studentList=(List)query.list();41 Iterator it=studentList.iterator();42 while(it.hasNext()){43 Student s=(Student)it.next();44 System.out.println(s);45 }46 }47
48 }
运行结果显示:
Hibernate: select student0_.stuId as stuId1_0_, student0_.stuName as stuName2_0_, student0_.stuAge as stuAge3_0_ from t_student student0_ limit ?, ?
Student [id=2, name=李四, age=15]
Student [id=3, name=王五, age=13]
6,查询单个对象;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Query;8 importorg.hibernate.Session;9 importorg.hibernate.SessionFactory;10 importorg.junit.After;11 importorg.junit.Before;12 importorg.junit.Test;13
14 importcom.wishwzp.model.Student;15 importcom.wishwzp.util.HibernateUtil;16
17 public classStudentTest {18
19 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();20 privateSession session;21
22 @Before23 public void setUp() throwsException {24 session=sessionFactory.openSession(); //生成一个session
25 session.beginTransaction(); //开启事务
26 }27
28 @After29 public void tearDown() throwsException {30 session.getTransaction().commit(); //提交事务
31 session.close(); //关闭session
32 }33
34 @Test35 public voidtestHQLQuery6() {36 String hql="from Student";37 Query query=session.createQuery(hql);38 query.setFirstResult(1);39 query.setMaxResults(1);40 Student student=(Student)query.uniqueResult();41 System.out.println(student);42 }43
44 }
运行结果显示:
Hibernate: select student0_.stuId as stuId1_0_, student0_.stuName as stuName2_0_, student0_.stuAge as stuAge3_0_ from t_student student0_ limit ?, ?
Student [id=2, name=李四, age=15]
7,链式写法;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Query;8 importorg.hibernate.Session;9 importorg.hibernate.SessionFactory;10 importorg.junit.After;11 importorg.junit.Before;12 importorg.junit.Test;13
14 importcom.wishwzp.model.Student;15 importcom.wishwzp.util.HibernateUtil;16
17 public classStudentTest {18
19 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();20 privateSession session;21
22 @Before23 public void setUp() throwsException {24 session=sessionFactory.openSession(); //生成一个session
25 session.beginTransaction(); //开启事务
26 }27
28 @After29 public void tearDown() throwsException {30 session.getTransaction().commit(); //提交事务
31 session.close(); //关闭session
32 }33
34 @Test35 public voidtestHQLQuery7() {36 String hql="from Student as s where s.name like :stuName and s.age=:stuAge";37 Query query=session.createQuery(hql);38 List studentList=(List)query39 .setString("stuName", "张%")40 .setInteger("stuAge", 10)41 .list();42 Iterator it=studentList.iterator();43 while(it.hasNext()){44 Student s=(Student)it.next();45 System.out.println(s);46 }47 }48 }
运行结果显示:
Hibernate: select student0_.stuId as stuId1_0_, student0_.stuName as stuName2_0_, student0_.stuAge as stuAge3_0_ from t_student student0_ where (student0_.stuName like ?) and student0_.stuAge=?
Student [id=1, name=张三, age=10]
第四节:QBC 查询方式
QBC 查询方式(Query By Criteria)是用一套接口来实现的查询方式;
1,普通查询;
2,带条件查询;
3,对结果排序;
4,分页查询;
5,查询单个对象;
6,链式写法;
1,普通查询;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Criteria;8 importorg.hibernate.Query;9 importorg.hibernate.Session;10 importorg.hibernate.SessionFactory;11 importorg.hibernate.criterion.Criterion;12 importorg.hibernate.criterion.Order;13 importorg.hibernate.criterion.Restrictions;14 importorg.junit.After;15 importorg.junit.Before;16 importorg.junit.Test;17
18 importcom.wishwzp.model.Student;19 importcom.wishwzp.util.HibernateUtil;20
21 public classStudentTest {22
23 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();24 privateSession session;25
26 @Before27 public void setUp() throwsException {28 session=sessionFactory.openSession(); //生成一个session
29 session.beginTransaction(); //开启事务
30 }31
32 @After33 public void tearDown() throwsException {34 session.getTransaction().commit(); //提交事务
35 session.close(); //关闭session
36 }37
38
39 @Test40 public voidtestQBCQuery1(){41 Criteria criteria=session.createCriteria(Student.class);42 List studentList=criteria.list();43 Iterator it=studentList.iterator();44 while(it.hasNext()){45 Student s=(Student)it.next();46 System.out.println(s);47 }48 }49
50 }
运行结果显示:
Hibernate: select this_.stuId as stuId1_0_0_, this_.stuName as stuName2_0_0_, this_.stuAge as stuAge3_0_0_ from t_student this_
Student [id=1, name=张三, age=10]
Student [id=2, name=李四, age=15]
Student [id=3, name=王五, age=13]
2,带条件查询;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Criteria;8 importorg.hibernate.Query;9 importorg.hibernate.Session;10 importorg.hibernate.SessionFactory;11 importorg.hibernate.criterion.Criterion;12 importorg.hibernate.criterion.Order;13 importorg.hibernate.criterion.Restrictions;14 importorg.junit.After;15 importorg.junit.Before;16 importorg.junit.Test;17
18 importcom.wishwzp.model.Student;19 importcom.wishwzp.util.HibernateUtil;20
21 public classStudentTest {22
23 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();24 privateSession session;25
26 @Before27 public void setUp() throwsException {28 session=sessionFactory.openSession(); //生成一个session
29 session.beginTransaction(); //开启事务
30 }31
32 @After33 public void tearDown() throwsException {34 session.getTransaction().commit(); //提交事务
35 session.close(); //关闭session
36 }37
38 @Test39 public voidtestQBCQuery2(){40 Criteria criteria=session.createCriteria(Student.class);41 Criterion c1=Restrictions.like("name", "张%");42 Criterion c2=Restrictions.eq("age", 10);43 criteria.add(c1);44 criteria.add(c2);45 List studentList=criteria.list();46 Iterator it=studentList.iterator();47 while(it.hasNext()){48 Student s=(Student)it.next();49 System.out.println(s);50 }51 }52
53 }
运行结果显示:
Hibernate: select this_.stuId as stuId1_0_0_, this_.stuName as stuName2_0_0_, this_.stuAge as stuAge3_0_0_ from t_student this_ where this_.stuName like ? and this_.stuAge=?
Student [id=1, name=张三, age=10]
3,对结果排序;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Criteria;8 importorg.hibernate.Query;9 importorg.hibernate.Session;10 importorg.hibernate.SessionFactory;11 importorg.hibernate.criterion.Criterion;12 importorg.hibernate.criterion.Order;13 importorg.hibernate.criterion.Restrictions;14 importorg.junit.After;15 importorg.junit.Before;16 importorg.junit.Test;17
18 importcom.wishwzp.model.Student;19 importcom.wishwzp.util.HibernateUtil;20
21 public classStudentTest {22
23 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();24 privateSession session;25
26 @Before27 public void setUp() throwsException {28 session=sessionFactory.openSession(); //生成一个session
29 session.beginTransaction(); //开启事务
30 }31
32 @After33 public void tearDown() throwsException {34 session.getTransaction().commit(); //提交事务
35 session.close(); //关闭session
36 }37
38
39 @Test40 public voidtestQBCQuery3(){41 Criteria criteria=session.createCriteria(Student.class);42 criteria.addOrder(Order.desc("age"));43 List studentList=criteria.list();44 Iterator it=studentList.iterator();45 while(it.hasNext()){46 Student s=(Student)it.next();47 System.out.println(s);48 }49 }50
51 }
运行结果显示:
Hibernate: select this_.stuId as stuId1_0_0_, this_.stuName as stuName2_0_0_, this_.stuAge as stuAge3_0_0_ from t_student this_ order by this_.stuAge desc
Student [id=2, name=李四, age=15]
Student [id=3, name=王五, age=13]
Student [id=1, name=张三, age=10]
4,分页查询;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Criteria;8 importorg.hibernate.Query;9 importorg.hibernate.Session;10 importorg.hibernate.SessionFactory;11 importorg.hibernate.criterion.Criterion;12 importorg.hibernate.criterion.Order;13 importorg.hibernate.criterion.Restrictions;14 importorg.junit.After;15 importorg.junit.Before;16 importorg.junit.Test;17
18 importcom.wishwzp.model.Student;19 importcom.wishwzp.util.HibernateUtil;20
21 public classStudentTest {22
23 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();24 privateSession session;25
26 @Before27 public void setUp() throwsException {28 session=sessionFactory.openSession(); //生成一个session
29 session.beginTransaction(); //开启事务
30 }31
32 @After33 public void tearDown() throwsException {34 session.getTransaction().commit(); //提交事务
35 session.close(); //关闭session
36 }37
38 @Test39 public voidtestQBCQuery4(){40 Criteria criteria=session.createCriteria(Student.class);41 criteria.setFirstResult(2);42 criteria.setMaxResults(2);43 List studentList=criteria.list();44 Iterator it=studentList.iterator();45 while(it.hasNext()){46 Student s=(Student)it.next();47 System.out.println(s);48 }49 }50
51 }
运行结果显示:
Hibernate: select this_.stuId as stuId1_0_0_, this_.stuName as stuName2_0_0_, this_.stuAge as stuAge3_0_0_ from t_student this_ limit ?, ?
Student [id=3, name=王五, age=13]
5,查询单个对象;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Criteria;8 importorg.hibernate.Query;9 importorg.hibernate.Session;10 importorg.hibernate.SessionFactory;11 importorg.hibernate.criterion.Criterion;12 importorg.hibernate.criterion.Order;13 importorg.hibernate.criterion.Restrictions;14 importorg.junit.After;15 importorg.junit.Before;16 importorg.junit.Test;17
18 importcom.wishwzp.model.Student;19 importcom.wishwzp.util.HibernateUtil;20
21 public classStudentTest {22
23 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();24 privateSession session;25
26 @Before27 public void setUp() throwsException {28 session=sessionFactory.openSession(); //生成一个session
29 session.beginTransaction(); //开启事务
30 }31
32 @After33 public void tearDown() throwsException {34 session.getTransaction().commit(); //提交事务
35 session.close(); //关闭session
36 }37
38 @Test39 public voidtestQBCQuery5(){40 Criteria criteria=session.createCriteria(Student.class);41 criteria.setFirstResult(2);42 criteria.setMaxResults(1);43 Student student=(Student)criteria.uniqueResult();44 System.out.println(student);45 }46
47 }
运行结果显示:
Hibernate: select this_.stuId as stuId1_0_0_, this_.stuName as stuName2_0_0_, this_.stuAge as stuAge3_0_0_ from t_student this_ limit ?, ?
Student [id=3, name=王五, age=13]
6,链式写法;
StudentTest.java
1 packagecom.wishwzp.service;2
3
4 importjava.util.Iterator;5 importjava.util.List;6
7 importorg.hibernate.Criteria;8 importorg.hibernate.Query;9 importorg.hibernate.Session;10 importorg.hibernate.SessionFactory;11 importorg.hibernate.criterion.Criterion;12 importorg.hibernate.criterion.Order;13 importorg.hibernate.criterion.Restrictions;14 importorg.junit.After;15 importorg.junit.Before;16 importorg.junit.Test;17
18 importcom.wishwzp.model.Student;19 importcom.wishwzp.util.HibernateUtil;20
21 public classStudentTest {22
23 private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();24 privateSession session;25
26 @Before27 public void setUp() throwsException {28 session=sessionFactory.openSession(); //生成一个session
29 session.beginTransaction(); //开启事务
30 }31
32 @After33 public void tearDown() throwsException {34 session.getTransaction().commit(); //提交事务
35 session.close(); //关闭session
36 }37
38 @Test39 public voidtestQBCQuery6(){40 Criteria criteria=session.createCriteria(Student.class);41 List studentList=criteria42 .setFirstResult(0)43 .setMaxResults(2)44 .list();45 Iterator it=studentList.iterator();46 while(it.hasNext()){47 Student s=(Student)it.next();48 System.out.println(s);49 }50 }51
52 }
运行结果显示:
Hibernate: select this_.stuId as stuId1_0_0_, this_.stuName as stuName2_0_0_, this_.stuAge as stuAge3_0_0_ from t_student this_ limit ?
Student [id=1, name=张三, age=10]
Student [id=2, name=李四, age=15]
END