hibernate查询方式:1.本地SQL查询  2.HQL查询  3.QBC查询

HQL查询:是面向对象的查询语言,是使用最广的一种查询方法

QBC查询:Query by Criteria是一套接口来实现的查询方式

StudentTest.java:

package service;

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

import model.Student;

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 util.HibernateUtil;

public class StudentTest {

SessionFactory sessionfactory=HibernateUtil.getSessionFactory();//获取Session工厂
    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","11%");
        query.setInteger("stuAge",1);
        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 as s where s.name like :stuName and s.age=:stuAge";
        Query query=session.createQuery(hql);
        query.setString("stuName","11%");
        query.setInteger("stuAge",1);
        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 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 testHQLQuery4(){
        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 testHQLQuery5(){
        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 testHQLQuery6(){
        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","11%").setInteger("stuAge",1).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","22%");
        Criterion c2=Restrictions.eq("age",2);
        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);
        }
    }
}

hibernate查询方式的更多相关文章

  1. (十)Hibernate 查询方式

     所有项目导入对应的hibernate的jar包.mysql的jar包和添加每次都需要用到的HibernateUtil.java 第一节:Hibernate 查询方式简介 1,导航对象图查询方式: 2 ...

  2. Hibernate查询方式(补)

    -----------------siwuxie095                             Hibernate 查询方式         1.对象导航查询     根据已经加载的对 ...

  3. Hibernate学习10——Hibernate 查询方式

    本章主要是以查询Student的例子: Student.java: package com.cy.model; public class Student { private int id; priva ...

  4. Hibernate 查询方式、JPA查询方式

    hibernate 查询方式: OID 查询 对象导航查询 HQL 方式查询 QBC方式查询 原生SQL方式查询 JPA 查询方式: OID 查询 对象导航查询 JPQL 方式查询 CriteriaB ...

  5. Hibernate 查询方式(HQL/QBC/QBE)汇总

    作为老牌的 ORM 框架,Hibernate 在推动数据库持久化层所做出的贡献有目共睹. 它所提供的数据查询方式也越来越丰富,从 SQL 到自创的 HQL,再到面向对象的标准化查询. 虽然查询方式有点 ...

  6. hibernate 查询方式汇总

    主要摘自  http://blog.sina.com.cn/s/blog_7ffb8dd501014a6o.html ,http://blog.csdn.net/xingtianyiyun/artic ...

  7. Redis查询&JDBC查询&Hibernate查询方式的效率比较...

    比较三种查询方式查询效率对比...我是用的JavaWeb的方式通过通过JSP页面查询的填写查询的参数...给予反馈.... 整个demo的下载地址:http://files.cnblogs.com/f ...

  8. Hibernate查询方式&抓取策略

    Hibernate的查询方式 1.OID查询 hibernate根据对象的OID(主键)进行检索 使用get方法 Customer customer=session.get(Customer.clas ...

  9. Hibernate学习笔记(五)—— Hibernate查询方式

    一.对象图导航查询 对象图导航查询方式是根据已经加载的对象,导航到他的关联对象.它利用类与类之间的关系来查询对象.比如要查找一个联系人对应的客户,就可以由联系人对象自动导航找到联系人所属的客户对象.当 ...

随机推荐

  1. SCRUM:第一天任务实现情况

    我认领了我们团队“广商百货”应用平台的密码提示功能,任务暂时还在进行中.虽然建立了数据库,但是数据库里要存放什么数据,我们的小组还在讨论中.因为android的知识还在自学过程中,所以做起来比较慢,也 ...

  2. js算法运算

    //js 加法计算 //调用:accAdd(arg1,arg2) //返回值:arg1加arg2的精确结果 function accAdd(arg1,arg2){ var r1,r2,m; try{r ...

  3. 2015-2016 ACM-ICPC, NEERC, Southern Subregional Contest, B. Layer Cake

    Description Dasha decided to bake a big and tasty layer cake. In order to do that she went shopping ...

  4. [moka同学笔记]yii2.0的下拉菜单与bootstrap下拉菜单

    1.yii2下拉菜单 <li class="dropdown"><a href="#" class="dropdown-toggle ...

  5. CentOS常用指令

    创建文件: 如touch a.txt 创建文件夹: mkdir -p 文件夹名,当文件夹不存在时候,创建这个文件夹 文件重命名: 把文件text.php得命名为index.php,可以是rename ...

  6. JAVA 缓存Ehcache详细解毒

    链接地址:http://raychase.iteye.com/blog/1545906 作者:RayChase 写的真是太好了,郑重推荐.

  7. Android详细的对话框AlertDialog.Builder使用方法

      我们在平时做开发的时候,免不了会用到各种各样的对话框,相信有过其他平台开发经验的朋友都会知道,大部分的平台都只提供了几个最简单的实现,如果我们想实现自己特定需求的对话框,大家可能首先会想到,通过继 ...

  8. handler机制的原理(转)

      Handler概述   andriod提供了Handler 和 Looper 来满足线程间的通信.Handler先进先出原则.Looper类用来管理特定线程内对象之间的消息交换(MessageEx ...

  9. 微信公共平台开发5 .net

    每次在于微信交互时,都要用到access_token,但是这个值限制的是有时间的,但是access_token,在以后的高级功能里面会经常用到,所以这里不得不这里对前面所讲解的access_token ...

  10. Jquey Form 异步提交文件参数并且在http 信息头header中加上一定参数

    1.下载jQuery.Form 包 官网下载:http://jquery.malsup.com/form/#download 2.模拟代码: <!DOCTYPE html> <htm ...