Hibernate查询4种

@Test
 public void testNativSQL(){
  System.out.println("=======查询所有========原生sql==========");
  //查询所有 查询出来的list是数组组成的集合对象,所以先循环集合,拿到的是数组,然后用[]拿到数组中的元素
  String sql="select * from user";
  Session session=getSession();
  SQLQuery sqlQuery=session.createSQLQuery(sql);
  
  List<Object[]> list=sqlQuery.list();
  
  for (Object[] obj : list) {
   System.out.println(obj[0]+":"+obj[3]);
  }
  
  
  System.out.println("=======原生sql==========查询指定字段=================");
  
  
  
  
  //查询指定字段 查询出来的list是由realName组成的集合对象,用list.get(0)拿到集合中的第一个
  String sql1="select realName from user";
  Session session1=getSession();
  SQLQuery sqlQuery1=session1.createSQLQuery(sql1);
  
 
  List<Object[]> list1=sqlQuery1.list();
  System.out.println(list1.get(0));
  
  
  System.out.println("=======查询所有========原生sql==========用addEntity将数组转化为对象=================");
  String sql2="select * from user";
  Session session2=getSession();
  SQLQuery sqlQuery2=session2.createSQLQuery(sql2).addEntity(UserInfo.class);
  
  List<UserInfo> list2=sqlQuery2.list();
  System.out.println(list2);
  System.out.println(list2.get(0).getRealName());
  
  
  System.out.println("=======带条件查询所有========原生sql==========用addEntity将数组转化为对象=================");
  String sql3="select * from user where userId>:uid";
  Session session3=getSession();
  SQLQuery sqlQuery3=session3.createSQLQuery(sql3).addEntity(UserInfo.class);
  
  sqlQuery3.setInteger("uid", 4);
  List<UserInfo> list3=sqlQuery3.list();
  System.out.println(list3.toString());
  
  session.close();
  session1.close();
  session2.close();
  session3.close();
  
 }

@Test
 public void testHQL(){
  Session session=getSession();
  
  
  
  System.out.println("=======HQL查询所有记录====================");
  //list出来时一个对象组成的数组
  String hql="from UserInfo";
  Query query=session.createQuery(hql);
  
  List<UserInfo> list=query.list();
  System.out.println(list);
  
  System.out.println("=======HQL查询所有记录指定字段=输出数组===================");
  //查询出来时两个属性组成的数组的集合
  String hql1="select username,password from UserInfo u";
  Query query1=session.createQuery(hql1);
  
  List<UserInfo> list1=query1.list();
  System.out.println(list1);
  
  
  System.out.println("=======HQL查询所有记录指定字段=输出对象===================");
  //查询出来时两个属性组成的数组的集合 必须提供构造函数,,,带参数
  String hql2="select new UserInfo(username,password) from UserInfo u";
  Query query2=session.createQuery(hql2);
  
  List<UserInfo> list2=query2.list();
  System.out.println(list2.toString());
  
  
  System.out.println("=======HQL查询指定记录指定字段=输出对象===================");
  
  String hql3="from UserInfo  u where  u.role.roleId=:uid";
  Query query3=session.createQuery(hql3);
  query3.setInteger("uid", 3);
  List<UserInfo> list3=query3.list();
  System.out.println(list3);
  
  
  session.close();
 }
 
 @Test
 public void testCriteria(){
  Session session=getSession();
  
  Criteria ct =session.createCriteria(UserInfo.class);
  System.out.println(ct.list());
  
  
   ct =session.createCriteria(UserInfo.class);
  //ct.add(Restrictions.eq("username", "张三"));
  ct.addOrder(Order.desc("userId"));
  System.out.println(ct.list());
  
  
  session.close();
 }
 
 @Test
 
 public void testPagin(){
     Session session=getSession();
  
  Criteria ct =session.createCriteria(UserInfo.class);
  /*ct.add(Restrictions.between("userId", 3, 5));*/
  ct.add(Restrictions.gt("userId", 2));
  
  ct.setMaxResults(2);
  ct.setFirstResult((3-1)*2);
  List<UserInfo> list=ct.list();
  System.out.println(list);
  session.close();
 }
 
 
 @Test
 
 public void testNamedQuery(){
  
  Session session=getSession();
  //对象
  Query query=session.getNamedQuery("alla");
  System.out.println(query.list());
  
  //数组
  Query query1=session.getNamedQuery("allb");
  System.out.println(query1.list());
 }

时间: 2024-11-06 07:41:02

Hibernate查询4种的相关文章

hibernate 查询方式汇总

主要摘自  http://blog.sina.com.cn/s/blog_7ffb8dd501014a6o.html ,http://blog.csdn.net/xingtianyiyun/article/details/7703429 Hibernate总的来说共有三种查询方式:HQL.QBC和SQL三种.但是细分可以有如下几种: 一.HQL查询方式     这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的语法差不太多.条件查询.分页查询.连接查询.嵌套查询,写起来

Hibernate查询方式

Hibernate查询方式 1 对象导航查询 (1)根据id查询某个客户,再查询这个客户里面所有的联系人   2 OID查询 (1)根据id查询某一条记录,返回对象   3 HQL查询 (1)Query对象,写hql语句实现查询   4 QBC查询 (1)Criteria对象   5 本地sql查询 (1)SQLQuery对象,使用普通sql实现查询 对象导航查询 1 查询某个客户里面所有联系人过程,使用对象导航实现   2 代码 OID查询 1 根据id查询记录 (1)调用session里面的

Hibernate查询的六种方式

Hibernate查询的六种方式 分别是HQL查询,对象化查询Criteria方法,动态查询DetachedCriteria,例子查询,sql查询,命名查询. 如果单纯的使用hibernate查询数据库只需要懂其中的一项就可以完成想要实现的一般功能,但是想多学知识就看一下这六种方法,他们提供了更多选择.当然每一种方法都有其适用的情况与前提. 1.HQL查询 HQL是hibernate自己的一套查询语言,于SQL语法不同,具有跨数据库的优点.示例代码: [java] view plain copy

六种方式实现hibernate查询,及IDE推荐

hibernate查询的6种方法.分别是HQL查询,对象化查询Criteria方法,动态查询DetachedCriteria,例子查询,sql查询,命名查询. 如果单纯的使用hibernate查询数据库只需要懂其中的一项就可以完成想要实现的一般功能,但是从一个点,让我们掌握6中方法,则提供了更多选择.每一种方法都有其适用的情况与前提. HQL查询 HQL是hibernate自己的一套查询语言,于SQL语法不同,具有跨数据库的优点.示例代码: static void query(String na

(十)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

Hibernate查询方式---HQL方式

这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的语法差不太多.条件查询.分页查询.连接查询.嵌套查询,写起来与SQL语法基本一致,唯一不同的就是把表名换成了类或者对象.其它的,包括一些查询函数(count(),sum()等).查询条件的设定等,全都跟SQL语法一样.###注意:     在hql中关键字不区分大小写,但是属性和类名区分大小写示例1: static void query(String name){ Session s=null; try{ s=Hiber

11、hibernate查询、连接池、二级缓存

Hibernate第三天: 1. 对象状态 2. session缓存 3. lazy懒加载 4. 映射 一对一对映射 组件/继承映射 目标: 一.hibernate查询 二.hibernate对连接池的支持 三.二级缓存 四.Hibernate与Struts小案例(项目中session的管理方式) 一.hibernate查询 查询概述 1)Get/load主键查询 2)对象导航查询 3)HQL查询, Hibernate Query language hibernate 提供的面向对象的查询语言.

Hibernate的四种典型例子(增删改查)

Hibernate的四种典型例子(增删改查)  //查询  // Session session=HibernateSessionFactory.getSession();  // session.beginTransaction();  // Query q=session.createQuery("from Info where id=:id");  // q.setInteger("id", 1);  // List l=q.list();  // Info

Hibernate查询方式 一

Hibernate查询方式 说到hibernate的查询方式,我们自然而然就想到了它--hql,hibernate query language.hql是使用hibernate框架的变成配朋友们使用最多的一种方式,它以自身的独特的优势:屏蔽数据库,书写灵活的优点,备受大家的青睐.但是Hibernate不仅给我们提供了这一种查询方式,这时候悠然要说来,是不只一种,还有sql,对,确实还有sql,但是还有一种,就是Criteria 查询.那么今天,我们就来聊一聊hibernate的几种查询方式. H