zoukankan      html  css  js  c++  java
  • (十)Hibernate 查询方式

     所有项目导入对应的hibernate的jar包、mysql的jar包和添加每次都需要用到的HibernateUtil.java

    第一节:Hibernate 查询方式简介

    1,导航对象图查询方式;

    2,OID 查询方式;

    3,本地SQL 查询方式;

    4,HQL 查询方式;

    5,QBC 查询方式;(Query By Criteria)

     第二节:本地SQL 查询方式

     Student.java

     1 package com.wishwzp.model;
     2 
     3 public class Student {
     4 
     5     private int id;
     6     private String name;
     7     private int age;
     8     
     9     public int getId() {
    10         return id;
    11     }
    12     public void setId(int id) {
    13         this.id = id;
    14     }
    15     public String getName() {
    16         return name;
    17     }
    18     public void setName(String name) {
    19         this.name = name;
    20     }
    21     public int getAge() {
    22         return age;
    23     }
    24     public void setAge(int age) {
    25         this.age = age;
    26     }
    27     @Override
    28     public String toString() {
    29         return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
    30     }
    31     
    32 }

    Student.hbm.xml

     1 <?xml version="1.0"?>
     2 <!DOCTYPE hibernate-mapping PUBLIC
     3         "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
     4         "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
     5 
     6 <hibernate-mapping package="com.wishwzp.model">
     7 
     8     <class name="Student" table="t_student">
     9         <id name="id" column="stuId">
    10             <generator class="native"></generator>
    11         </id>
    12         
    13         <property name="name" column="stuName"></property>
    14         <property name="age" column="stuAge"></property>
    15     </class>
    16 
    17 </hibernate-mapping>

    hibernate.cfg.xml

     1 <?xml version='1.0' encoding='utf-8'?>
     2 <!DOCTYPE hibernate-configuration PUBLIC
     3         "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
     4         "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
     5 
     6 <hibernate-configuration>
     7 
     8     <session-factory>
     9 
    10         <!--数据库连接设置 -->
    11         <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    12         <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
    13         <property name="connection.username">root</property>
    14         <property name="connection.password">123456</property>
    15 
    16        
    17         <!-- 方言 -->
    18         <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
    19     
    20         <!-- 控制台显示SQL -->
    21         <property name="show_sql">true</property>
    22 
    23         <!-- 自动更新表结构 -->
    24         <property name="hbm2ddl.auto">update</property>
    25         
    26           <mapping resource="com/wishwzp/model/Student.hbm.xml"/>
    27           
    28           
    29 
    30     </session-factory>
    31 
    32 </hibernate-configuration>

    StudentTest.java

     1 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Query;
     8 import org.hibernate.Session;
     9 import org.hibernate.SessionFactory;
    10 import org.junit.After;
    11 import org.junit.Before;
    12 import org.junit.Test;
    13 
    14 import com.wishwzp.model.Student;
    15 import com.wishwzp.util.HibernateUtil;
    16 
    17 public class StudentTest {
    18 
    19     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    20     private Session session;
    21     
    22     @Before
    23     public void setUp() throws Exception {
    24         session=sessionFactory.openSession(); // 生成一个session
    25         session.beginTransaction(); // 开启事务
    26     }
    27 
    28     @After
    29     public void tearDown() throws Exception {
    30          session.getTransaction().commit(); // 提交事务
    31          session.close(); // 关闭session
    32     }
    33 
    34     @Test
    35     public void testSQLQuery() {
    36             
    37     }
    38     
    39     
    40 }

    运行结果生成了数据库信息:

     

     

     我们插入一些数据:

     再次写代码查询里面的数据:

    StudentTest.java

     1 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Query;
     8 import org.hibernate.Session;
     9 import org.hibernate.SessionFactory;
    10 import org.junit.After;
    11 import org.junit.Before;
    12 import org.junit.Test;
    13 
    14 import com.wishwzp.model.Student;
    15 import com.wishwzp.util.HibernateUtil;
    16 
    17 public class StudentTest {
    18 
    19     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    20     private Session session;
    21     
    22     @Before
    23     public void setUp() throws Exception {
    24         session=sessionFactory.openSession(); // 生成一个session
    25         session.beginTransaction(); // 开启事务
    26     }
    27 
    28     @After
    29     public void tearDown() throws Exception {
    30          session.getTransaction().commit(); // 提交事务
    31          session.close(); // 关闭session
    32     }
    33 
    34     @Test
    35     public void testSQLQuery() {
    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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Query;
     8 import org.hibernate.Session;
     9 import org.hibernate.SessionFactory;
    10 import org.junit.After;
    11 import org.junit.Before;
    12 import org.junit.Test;
    13 
    14 import com.wishwzp.model.Student;
    15 import com.wishwzp.util.HibernateUtil;
    16 
    17 public class StudentTest {
    18 
    19     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    20     private Session session;
    21     
    22     @Before
    23     public void setUp() throws Exception {
    24         session=sessionFactory.openSession(); // 生成一个session
    25         session.beginTransaction(); // 开启事务
    26     }
    27 
    28     @After
    29     public void tearDown() throws Exception {
    30          session.getTransaction().commit(); // 提交事务
    31          session.close(); // 关闭session
    32     }
    33     
    34     @Test
    35     public void testSQLQuery2() {
    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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Query;
     8 import org.hibernate.Session;
     9 import org.hibernate.SessionFactory;
    10 import org.junit.After;
    11 import org.junit.Before;
    12 import org.junit.Test;
    13 
    14 import com.wishwzp.model.Student;
    15 import com.wishwzp.util.HibernateUtil;
    16 
    17 public class StudentTest {
    18 
    19     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    20     private Session session;
    21     
    22     @Before
    23     public void setUp() throws Exception {
    24         session=sessionFactory.openSession(); // 生成一个session
    25         session.beginTransaction(); // 开启事务
    26     }
    27 
    28     @After
    29     public void tearDown() throws Exception {
    30          session.getTransaction().commit(); // 提交事务
    31          session.close(); // 关闭session
    32     }
    33     
    34     @Test
    35     public void testHQLQuery() {
    36         String hql="from Student";
    37         Query query=session.createQuery(hql);
    38         List<Student> studentList=(List<Student>)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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Query;
     8 import org.hibernate.Session;
     9 import org.hibernate.SessionFactory;
    10 import org.junit.After;
    11 import org.junit.Before;
    12 import org.junit.Test;
    13 
    14 import com.wishwzp.model.Student;
    15 import com.wishwzp.util.HibernateUtil;
    16 
    17 public class StudentTest {
    18 
    19     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    20     private Session session;
    21     
    22     @Before
    23     public void setUp() throws Exception {
    24         session=sessionFactory.openSession(); // 生成一个session
    25         session.beginTransaction(); // 开启事务
    26     }
    27 
    28     @After
    29     public void tearDown() throws Exception {
    30          session.getTransaction().commit(); // 提交事务
    31          session.close(); // 关闭session
    32     }
    33     
    34     @Test
    35     public void testHQLQuery2() {
    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<Student> studentList=(List<Student>)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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Query;
     8 import org.hibernate.Session;
     9 import org.hibernate.SessionFactory;
    10 import org.junit.After;
    11 import org.junit.Before;
    12 import org.junit.Test;
    13 
    14 import com.wishwzp.model.Student;
    15 import com.wishwzp.util.HibernateUtil;
    16 
    17 public class StudentTest {
    18 
    19     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    20     private Session session;
    21     
    22     @Before
    23     public void setUp() throws Exception {
    24         session=sessionFactory.openSession(); // 生成一个session
    25         session.beginTransaction(); // 开启事务
    26     }
    27 
    28     @After
    29     public void tearDown() throws Exception {
    30          session.getTransaction().commit(); // 提交事务
    31          session.close(); // 关闭session
    32     }
    33     
    34     @Test
    35     public void testHQLQuery3() {
    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<Student> studentList=(List<Student>)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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Query;
     8 import org.hibernate.Session;
     9 import org.hibernate.SessionFactory;
    10 import org.junit.After;
    11 import org.junit.Before;
    12 import org.junit.Test;
    13 
    14 import com.wishwzp.model.Student;
    15 import com.wishwzp.util.HibernateUtil;
    16 
    17 public class StudentTest {
    18 
    19     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    20     private Session session;
    21     
    22     @Before
    23     public void setUp() throws Exception {
    24         session=sessionFactory.openSession(); // 生成一个session
    25         session.beginTransaction(); // 开启事务
    26     }
    27 
    28     @After
    29     public void tearDown() throws Exception {
    30          session.getTransaction().commit(); // 提交事务
    31          session.close(); // 关闭session
    32     }
    33     
    34     @Test
    35     public void testHQLQuery4() {
    36         String hql="from Student order by age desc";
    37         Query query=session.createQuery(hql);
    38         List<Student> studentList=(List<Student>)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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Query;
     8 import org.hibernate.Session;
     9 import org.hibernate.SessionFactory;
    10 import org.junit.After;
    11 import org.junit.Before;
    12 import org.junit.Test;
    13 
    14 import com.wishwzp.model.Student;
    15 import com.wishwzp.util.HibernateUtil;
    16 
    17 public class StudentTest {
    18 
    19     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    20     private Session session;
    21     
    22     @Before
    23     public void setUp() throws Exception {
    24         session=sessionFactory.openSession(); // 生成一个session
    25         session.beginTransaction(); // 开启事务
    26     }
    27 
    28     @After
    29     public void tearDown() throws Exception {
    30          session.getTransaction().commit(); // 提交事务
    31          session.close(); // 关闭session
    32     }
    33     
    34     @Test
    35     public void testHQLQuery5() {
    36         String hql="from Student";
    37         Query query=session.createQuery(hql);
    38         query.setFirstResult(1);
    39         query.setMaxResults(2);
    40         List<Student> studentList=(List<Student>)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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Query;
     8 import org.hibernate.Session;
     9 import org.hibernate.SessionFactory;
    10 import org.junit.After;
    11 import org.junit.Before;
    12 import org.junit.Test;
    13 
    14 import com.wishwzp.model.Student;
    15 import com.wishwzp.util.HibernateUtil;
    16 
    17 public class StudentTest {
    18 
    19     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    20     private Session session;
    21     
    22     @Before
    23     public void setUp() throws Exception {
    24         session=sessionFactory.openSession(); // 生成一个session
    25         session.beginTransaction(); // 开启事务
    26     }
    27 
    28     @After
    29     public void tearDown() throws Exception {
    30          session.getTransaction().commit(); // 提交事务
    31          session.close(); // 关闭session
    32     }
    33     
    34     @Test
    35     public void testHQLQuery6() {
    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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Query;
     8 import org.hibernate.Session;
     9 import org.hibernate.SessionFactory;
    10 import org.junit.After;
    11 import org.junit.Before;
    12 import org.junit.Test;
    13 
    14 import com.wishwzp.model.Student;
    15 import com.wishwzp.util.HibernateUtil;
    16 
    17 public class StudentTest {
    18 
    19     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    20     private Session session;
    21     
    22     @Before
    23     public void setUp() throws Exception {
    24         session=sessionFactory.openSession(); // 生成一个session
    25         session.beginTransaction(); // 开启事务
    26     }
    27 
    28     @After
    29     public void tearDown() throws Exception {
    30          session.getTransaction().commit(); // 提交事务
    31          session.close(); // 关闭session
    32     }
    33     
    34     @Test
    35     public void testHQLQuery7() {
    36         String hql="from Student as s where s.name like :stuName and s.age=:stuAge";
    37         Query query=session.createQuery(hql);
    38         List<Student> studentList=(List<Student>)query
    39                 .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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Criteria;
     8 import org.hibernate.Query;
     9 import org.hibernate.Session;
    10 import org.hibernate.SessionFactory;
    11 import org.hibernate.criterion.Criterion;
    12 import org.hibernate.criterion.Order;
    13 import org.hibernate.criterion.Restrictions;
    14 import org.junit.After;
    15 import org.junit.Before;
    16 import org.junit.Test;
    17 
    18 import com.wishwzp.model.Student;
    19 import com.wishwzp.util.HibernateUtil;
    20 
    21 public class StudentTest {
    22 
    23     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    24     private Session session;
    25     
    26     @Before
    27     public void setUp() throws Exception {
    28         session=sessionFactory.openSession(); // 生成一个session
    29         session.beginTransaction(); // 开启事务
    30     }
    31 
    32     @After
    33     public void tearDown() throws Exception {
    34          session.getTransaction().commit(); // 提交事务
    35          session.close(); // 关闭session
    36     }
    37 
    38     
    39     @Test
    40     public void testQBCQuery1(){
    41         Criteria criteria=session.createCriteria(Student.class);
    42         List<Student> 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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Criteria;
     8 import org.hibernate.Query;
     9 import org.hibernate.Session;
    10 import org.hibernate.SessionFactory;
    11 import org.hibernate.criterion.Criterion;
    12 import org.hibernate.criterion.Order;
    13 import org.hibernate.criterion.Restrictions;
    14 import org.junit.After;
    15 import org.junit.Before;
    16 import org.junit.Test;
    17 
    18 import com.wishwzp.model.Student;
    19 import com.wishwzp.util.HibernateUtil;
    20 
    21 public class StudentTest {
    22 
    23     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    24     private Session session;
    25     
    26     @Before
    27     public void setUp() throws Exception {
    28         session=sessionFactory.openSession(); // 生成一个session
    29         session.beginTransaction(); // 开启事务
    30     }
    31 
    32     @After
    33     public void tearDown() throws Exception {
    34          session.getTransaction().commit(); // 提交事务
    35          session.close(); // 关闭session
    36     }
    37     
    38     @Test
    39     public void testQBCQuery2(){
    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<Student> 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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Criteria;
     8 import org.hibernate.Query;
     9 import org.hibernate.Session;
    10 import org.hibernate.SessionFactory;
    11 import org.hibernate.criterion.Criterion;
    12 import org.hibernate.criterion.Order;
    13 import org.hibernate.criterion.Restrictions;
    14 import org.junit.After;
    15 import org.junit.Before;
    16 import org.junit.Test;
    17 
    18 import com.wishwzp.model.Student;
    19 import com.wishwzp.util.HibernateUtil;
    20 
    21 public class StudentTest {
    22 
    23     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    24     private Session session;
    25     
    26     @Before
    27     public void setUp() throws Exception {
    28         session=sessionFactory.openSession(); // 生成一个session
    29         session.beginTransaction(); // 开启事务
    30     }
    31 
    32     @After
    33     public void tearDown() throws Exception {
    34          session.getTransaction().commit(); // 提交事务
    35          session.close(); // 关闭session
    36     }
    37 
    38     
    39     @Test
    40     public void testQBCQuery3(){
    41         Criteria criteria=session.createCriteria(Student.class);
    42         criteria.addOrder(Order.desc("age"));
    43         List<Student> 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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Criteria;
     8 import org.hibernate.Query;
     9 import org.hibernate.Session;
    10 import org.hibernate.SessionFactory;
    11 import org.hibernate.criterion.Criterion;
    12 import org.hibernate.criterion.Order;
    13 import org.hibernate.criterion.Restrictions;
    14 import org.junit.After;
    15 import org.junit.Before;
    16 import org.junit.Test;
    17 
    18 import com.wishwzp.model.Student;
    19 import com.wishwzp.util.HibernateUtil;
    20 
    21 public class StudentTest {
    22 
    23     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    24     private Session session;
    25     
    26     @Before
    27     public void setUp() throws Exception {
    28         session=sessionFactory.openSession(); // 生成一个session
    29         session.beginTransaction(); // 开启事务
    30     }
    31 
    32     @After
    33     public void tearDown() throws Exception {
    34          session.getTransaction().commit(); // 提交事务
    35          session.close(); // 关闭session
    36     }
    37     
    38     @Test
    39     public void testQBCQuery4(){
    40         Criteria criteria=session.createCriteria(Student.class);
    41         criteria.setFirstResult(2);
    42         criteria.setMaxResults(2);
    43         List<Student> 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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Criteria;
     8 import org.hibernate.Query;
     9 import org.hibernate.Session;
    10 import org.hibernate.SessionFactory;
    11 import org.hibernate.criterion.Criterion;
    12 import org.hibernate.criterion.Order;
    13 import org.hibernate.criterion.Restrictions;
    14 import org.junit.After;
    15 import org.junit.Before;
    16 import org.junit.Test;
    17 
    18 import com.wishwzp.model.Student;
    19 import com.wishwzp.util.HibernateUtil;
    20 
    21 public class StudentTest {
    22 
    23     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    24     private Session session;
    25     
    26     @Before
    27     public void setUp() throws Exception {
    28         session=sessionFactory.openSession(); // 生成一个session
    29         session.beginTransaction(); // 开启事务
    30     }
    31 
    32     @After
    33     public void tearDown() throws Exception {
    34          session.getTransaction().commit(); // 提交事务
    35          session.close(); // 关闭session
    36     }
    37     
    38     @Test
    39     public void testQBCQuery5(){
    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 package com.wishwzp.service;
     2 
     3 
     4 import java.util.Iterator;
     5 import java.util.List;
     6 
     7 import org.hibernate.Criteria;
     8 import org.hibernate.Query;
     9 import org.hibernate.Session;
    10 import org.hibernate.SessionFactory;
    11 import org.hibernate.criterion.Criterion;
    12 import org.hibernate.criterion.Order;
    13 import org.hibernate.criterion.Restrictions;
    14 import org.junit.After;
    15 import org.junit.Before;
    16 import org.junit.Test;
    17 
    18 import com.wishwzp.model.Student;
    19 import com.wishwzp.util.HibernateUtil;
    20 
    21 public class StudentTest {
    22 
    23     private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    24     private Session session;
    25     
    26     @Before
    27     public void setUp() throws Exception {
    28         session=sessionFactory.openSession(); // 生成一个session
    29         session.beginTransaction(); // 开启事务
    30     }
    31 
    32     @After
    33     public void tearDown() throws Exception {
    34          session.getTransaction().commit(); // 提交事务
    35          session.close(); // 关闭session
    36     }
    37     
    38     @Test
    39     public void testQBCQuery6(){
    40         Criteria criteria=session.createCriteria(Student.class);
    41         List<Student> studentList=criteria
    42                 .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

  • 相关阅读:
    find 用法
    linux 查看链接库的版本
    虚函数重载(overwrite) 继承覆盖问题
    将iso mount 到nfs 目录问题
    centos 下使用 pytesseract 识别文字
    nginx 报错Malformed HTTP request line, git 报错fatal: git-write-tree: error building trees
    nfs 支持ipv6
    数位操作
    二分图(最小顶点覆盖 最大匹配 最大独立集 )
    欧几里得算法
  • 原文地址:https://www.cnblogs.com/wishwzp/p/5486036.html
Copyright © 2011-2022 走看看