hibernate查询方式
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查询方式的更多相关文章
- (十)Hibernate 查询方式
所有项目导入对应的hibernate的jar包.mysql的jar包和添加每次都需要用到的HibernateUtil.java 第一节:Hibernate 查询方式简介 1,导航对象图查询方式: 2 ...
- Hibernate查询方式(补)
-----------------siwuxie095 Hibernate 查询方式 1.对象导航查询 根据已经加载的对 ...
- Hibernate学习10——Hibernate 查询方式
本章主要是以查询Student的例子: Student.java: package com.cy.model; public class Student { private int id; priva ...
- Hibernate 查询方式、JPA查询方式
hibernate 查询方式: OID 查询 对象导航查询 HQL 方式查询 QBC方式查询 原生SQL方式查询 JPA 查询方式: OID 查询 对象导航查询 JPQL 方式查询 CriteriaB ...
- Hibernate 查询方式(HQL/QBC/QBE)汇总
作为老牌的 ORM 框架,Hibernate 在推动数据库持久化层所做出的贡献有目共睹. 它所提供的数据查询方式也越来越丰富,从 SQL 到自创的 HQL,再到面向对象的标准化查询. 虽然查询方式有点 ...
- hibernate 查询方式汇总
主要摘自 http://blog.sina.com.cn/s/blog_7ffb8dd501014a6o.html ,http://blog.csdn.net/xingtianyiyun/artic ...
- Redis查询&JDBC查询&Hibernate查询方式的效率比较...
比较三种查询方式查询效率对比...我是用的JavaWeb的方式通过通过JSP页面查询的填写查询的参数...给予反馈.... 整个demo的下载地址:http://files.cnblogs.com/f ...
- Hibernate查询方式&抓取策略
Hibernate的查询方式 1.OID查询 hibernate根据对象的OID(主键)进行检索 使用get方法 Customer customer=session.get(Customer.clas ...
- Hibernate学习笔记(五)—— Hibernate查询方式
一.对象图导航查询 对象图导航查询方式是根据已经加载的对象,导航到他的关联对象.它利用类与类之间的关系来查询对象.比如要查找一个联系人对应的客户,就可以由联系人对象自动导航找到联系人所属的客户对象.当 ...
随机推荐
- 学习jQuery的事件dblclick
Insus.NET一直以来都是asp.net的开发的,少使用javascript.现在学习asp.net mvc了,jQuery是一个必须掌握的客户端语言. 不用急,慢慢来.一步一步.这篇练习jQue ...
- 如何快速开发树形列表和分页查询整合的WInform程序界面
我在做Winform界面的时候,一般都是统一化处理,界面顶部放置一些字段条件供查询,下面就是分页查询列表,展示相关的数据.但有时候碰到一些表字段内容分类比较多,有一些特别重要,如果放在一个树形列表来进 ...
- 可以调整gif动画图片尺寸的很实用的php类
类的使用demo: <?php //http://www.cnblogs.com/roucheng/ require_once "roucheng.php"; $gr = n ...
- ViewPager和Fragment的组合使用
如图是效果图用的是Viewpager和fragment来实现的主界面 不过其中的预加载我没有解决 如下是代码代码比较简单 package com.ithello.dingding; import ja ...
- 发布ASP.NET Core程序到Linux生产环境
原文翻译:Publish to a Linux Production Environment 作者:Sourabh Shirhatti 在这篇文章里我们将介绍如何在 Ubuntu 14.04 Serv ...
- eclipse优化与标准化记录
1.文件使用UTF-8格式: 2.取消js验证: 3.设置java文件模板
- 【GOF23设计模式】组合模式
来源:http://www.bjsxt.com/ 一.[GOF23设计模式]_组合模式.树状结构.杀毒软件架构.JUnite底层架构.常见开发场景 package com.test.composite ...
- VS 2013 Preview 自定义 SharePoint 2013 列表 之 两个Bug
SharePoint 2013 已RTM了,对于程序员来说又要了解新功能了,同时 VS 2013 也将要 RTM了,两者同时应用定会有不新功能,我们先从 自定义 列表开始. SharePoint 20 ...
- jquery只能输入数字方法
本方法为验证文本框的输入内容,如果输入的是数字,则提示"√".否则提示“必填,且只能输入数字字符”.在线体验效果:http://keleyi.com/keleyi/phtml/zz ...
- .NET破解之太乐地图下载器【非暴破】
不知不觉,接触破解逆向已经三个月了,从当初的门外汉到现在的小白,这个过程只有经历过才知道其中的苦与乐: 有无知.困惑.痛苦.惊喜.彻悟.欣慰…… 有无助的软件脱壳,茫然的代码分析,有无趣的反复测试, ...