Hibernate4之查询方式(十四)

hiberante查询方式
这里写图片描述

1.编写HibernateUtil类

package com.newbeedaly.util;

import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;

public class HibernateUtil {

    private static final SessionFactory sessionFactory=buildSessionFactory();

    private static SessionFactory buildSessionFactory(){
        Configuration configuration=new Configuration().configure(); // 实例化配置文件
        ServiceRegistry serviceRegistry=new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build(); // 实例化服务登记
        return configuration.buildSessionFactory(serviceRegistry); // 获取Session工厂
    }

    public static SessionFactory getSessionFactory(){
        return sessionFactory;
    }
}

2.配置hibernate.cfg.xml

<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<hibernate-configuration>

    <session-factory>

        <!--数据库连接设置 -->
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
        <property name="connection.username">root</property>
        <property name="connection.password">123456</property>


        <!-- 方言 -->
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>

        <!-- 控制台显示SQL -->
        <property name="show_sql">true</property>

        <!-- 自动更新表结构 -->
        <property name="hbm2ddl.auto">update</property>

        <mapping resource="com/newbeedaly/model/Student.hbm.xml"/>



    </session-factory>

</hibernate-configuration>

3.编写Student类和Student.hbm.xml配置文件

package com.newbeedaly.model;

public class Student {

    private int id;
    private String name;
    private int age;

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        this.age = age;
    }
    @Override
    public String toString() {
        return "Student [id=" + id + ", name=" + name + ", age=" + age + "]";
    }

}
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
        "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

<hibernate-mapping package="com.newbeedaly.model">

    <class name="Student" table="t_student">
        <id name="id" column="stuId">
            <generator class="native"></generator>
        </id>

        <property name="name" column="stuName"></property>
        <property name="age" column="stuAge"></property>
    </class>

</hibernate-mapping>

这里写图片描述
这里写图片描述

4.编写StudentTest测试类

package com.newbeedaly.service;


import java.util.Iterator;
import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.Order;
import org.hibernate.criterion.Restrictions;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;

import com.newbeedaly.model.Student;
import com.newbeedaly.util.HibernateUtil;

public class StudentTest {

    private SessionFactory sessionFactory=HibernateUtil.getSessionFactory();
    private Session session;

    @Before
    public void setUp() throws Exception {
        session=sessionFactory.openSession(); // 生成一个session
        session.beginTransaction(); // 开启事务
    }

    @After
    public void tearDown() throws Exception {
         session.getTransaction().commit(); // 提交事务
         session.close(); // 关闭session
    }

    @Test
    public void testSQLQuery() {
        String sql="select * from t_student";
        Query query=session.createSQLQuery(sql).addEntity(Student.class);
        List studentList=query.list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }       
    }

    @Test
    public void testSQLQuery2() {
        String sql="select * from t_student where stuName like :stuName and stuAge=:stuAge";
        Query query=session.createSQLQuery(sql).addEntity(Student.class);
        query.setString("stuName", "张%");
        query.setInteger("stuAge", 10);
        List studentList=query.list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }       
    }

    @Test
    public void testHQLQuery() {
        String hql="from Student";
        Query query=session.createQuery(hql);
        List<Student> studentList=(List<Student>)query.list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }       
    }

    @Test
    public void testHQLQuery2() {
        String hql="from Student where name like :stuName and age=:stuAge";
        Query query=session.createQuery(hql);
        query.setString("stuName", "张%");
        query.setInteger("stuAge", 10);
        List<Student> studentList=(List<Student>)query.list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }       
    }

    @Test
    public void testHQLQuery3() {
        String hql="from Student as s where s.name like :stuName and s.age=:stuAge";
        Query query=session.createQuery(hql);
        query.setString("stuName", "张%");
        query.setInteger("stuAge", 10);
        List<Student> studentList=(List<Student>)query.list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }       
    }

    @Test
    public void testHQLQuery4() {
        String hql="from Student order by age desc";
        Query query=session.createQuery(hql);
        List<Student> studentList=(List<Student>)query.list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }       
    }

    @Test
    public void testHQLQuery5() {
        String hql="from Student";
        Query query=session.createQuery(hql);
        query.setFirstResult(1);
        query.setMaxResults(2);
        List<Student> studentList=(List<Student>)query.list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }       
    }

    @Test
    public void testHQLQuery6() {
        String hql="from Student";
        Query query=session.createQuery(hql);
        query.setFirstResult(1);
        query.setMaxResults(1);
        Student student=(Student)query.uniqueResult();
        System.out.println(student);    
    }


    @Test
    public void testHQLQuery7() {
        String hql="from Student as s where s.name like :stuName and s.age=:stuAge";
        Query query=session.createQuery(hql);
        List<Student> studentList=(List<Student>)query
                .setString("stuName", "张%")
                .setInteger("stuAge", 10)
                .list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }       
    }

    @Test
    public void testQBCQuery1(){
        Criteria criteria=session.createCriteria(Student.class);
        List<Student> studentList=criteria.list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }   
    }

    @Test
    public void testQBCQuery2(){
        Criteria criteria=session.createCriteria(Student.class);
        Criterion c1=Restrictions.like("name", "张%");
        Criterion c2=Restrictions.eq("age", 10);
        criteria.add(c1);
        criteria.add(c2);
        List<Student> studentList=criteria.list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }   
    }

    @Test
    public void testQBCQuery3(){
        Criteria criteria=session.createCriteria(Student.class);
        criteria.addOrder(Order.desc("age"));
        List<Student> studentList=criteria.list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }   
    }

    @Test
    public void testQBCQuery4(){
        Criteria criteria=session.createCriteria(Student.class);
        criteria.setFirstResult(2);
        criteria.setMaxResults(2);
        List<Student> studentList=criteria.list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }   
    }

    @Test
    public void testQBCQuery5(){
        Criteria criteria=session.createCriteria(Student.class);
        criteria.setFirstResult(2);
        criteria.setMaxResults(1);
        Student student=(Student)criteria.uniqueResult();
        System.out.println(student);
    }


    @Test
    public void testQBCQuery6(){
        Criteria criteria=session.createCriteria(Student.class);
        List<Student> studentList=criteria
                .setFirstResult(0)
                .setMaxResults(2)
                .list();
        Iterator it=studentList.iterator();
        while(it.hasNext()){
            Student s=(Student)it.next();
            System.out.println(s);
        }   
    }

}

猜你喜欢

转载自blog.csdn.net/willdic/article/details/80519578