Hibernate之Query接口的uniqueResult()方法

如果查询返回多个值用list()方法

  1. public void testQuery(){
  2. Configuration config = new Configuration().configure();
  3. SessionFactory factory = config.buildSessionFactory(); //创建SessionFactory
  4. Session session = factory.openSession();        //创建Session
  5. session.beginTransaction();                     //开始事务
  6. Query query = session.createQuery("from Student");
  7. List list = query.list();  // 用list方法返回多个值
  8. //List list = session.createQuery("from Student").list();
  9. for(int i=0;i<list.size();i++){
  10. Student student = (Student)list.get(i);
  11. System.out.print(student.getId()+" ");
  12. System.out.print(student.getName()+" ");
  13. System.out.print(student.getSex()+" ");
  14. System.out.print(student.getBirthday());
  15. System.out.println();
  16. }
  17. session.getTransaction().commit();         //提交事务
  18. session.close();                           //关闭Session
  19. }

当确定返回的实例只有一个或者null时 用uniqueResult()方法

  1. public void testGet(){
  2. Configuration config = new Configuration().configure();
  3. SessionFactory factory = config.buildSessionFactory();
  4. Session session = factory.openSession();
  5. session.beginTransaction();
  6. Query query = session.createQuery("from Student s where s.id=?");
  7. query.setString(0, "2");
  8. Student student = (Student)query.uniqueResult();  //当确定返回的实例只有一个或者null时 用uniqueResult()方法
  9. //Student student = (Student)session.createQuery("from Student s where s.id=?").setString(0,"5").uniqueResult();
  10. System.out.println(student.getName());
  11. System.out.println(student.getBirthday());
  12. session.getTransaction().commit();
  13. session.close();
  14. }
时间: 2024-10-10 01:51:28

Hibernate之Query接口的uniqueResult()方法的相关文章

Hibernate uniqueResult方法的使用

以前写代码,总免不了编写登陆部分.在获取user的时候,只可能返回一个user实例,或者为null.以前使用以下方法实现.public User get(String id){      Session session=HibernateUtil.getSessionFactory().openSession();      String hql="from User u where u.id = ?";      List list=session.createQuery(hql).

Hibernate学习笔记(5)---Query接口

Hibernate中具有三种检索方式(HQL,QBC,SQL) Query接口 一个查询接口,用于向数据库中查询对象.并控制执行查询的过程.Query接口内封装了一个HQL查询语句. 举个栗子 //查询持久化类user Session session = sessionFactory.openSession(); //创建session实例 String hql ="from user as u where age>18"; //HQL语句,as别名可以省略不写 Query qu

hibernate uniqueResult方法

假设查询返回多个值用list()方法 [java] view plaincopyprint? public void testQuery(){ Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); //创建SessionFactory Session session = factory.openSession();        

hibernate使用Query进行查询

本文主要探讨hibernate的简单查询,主要是使用Query进行的查询. 1.首先看下annotation的API中关于查询的描述 2.3. 映射查询 2.3.1. 映射EJBQL/HQL查询 使用注解还可以映射EJBQL/HQL查询. @NamedQuery 和@NamedQueries是可使用在类和包上的注解. 但是它们的定义在session factory/entity manager factory范围中是都可见的. 命名式查询通过它的名字和实际的查询字符串来定义. javax.per

Hibernate面试题 --- list和iterator方法的区别

Hibernate面试题  ---  list和iterator方法的区别 1.首先看两个例子来比较一下 (1)在用Query方法查询的时候,通过HQL语句来得到Query对象,并对Query对象进行操作,首先是用list方法获取到Query的List集合并输出: 1 @Test 2 public void listQuery() { 3 4 Configuration configuration = new Configuration().configure(); 5 SessionFacto

初学Hibernate之Query扩展

1.hql参数化查询,不明确值类型的用setParameter方法:明确查询结果为一条记录的用uniqueResult方法查询 注意,参数化查询中方法setString 或 setParameter如果使用索引方式赋值,索引值从0开始,区别JDBC public void func1(){ Session session=HibernateUtils.getSession(); session.beginTransaction(); String hql="from Customer where

Hibernate的核心接口

Hibernate的核心接口一共有5个 Session.SessionFactory.Transaction.Query和Configuration SessionFactory接口 SessionFactroy接口负责初始化Hibernate.它充当数据存储源的代理,并负责创建Session对象. 这里用到了工厂模式.需要注意的是SessionFactory并不是轻量级的,因为一般情况下,一个项目通常只需要一个SessionFactory就够, 当需要操作多个数据库时,可以为每个数据库指定一个

Hibernate 入门----Query,Criteria,SQLQuery

hibernate 的QueryHQL(Hibernate Query Language)是一种Hibernate专用的查询语句,基于面向对象的模式,将SQL语句转化成对象的操作格式.list() 查询多条 @Test public void query(){ // sql : select 列名 from 表明; // hql : select 属性名 from 类名; // select 别名.属性 from 类名 as 别名; String hql = "from User";

比较JPA的EntityManager接口与Hibernate的Session接口

本文对JPA的EntityManager接口与Hibernate的Session接口进行了比较,本文参考<精通JPA与Hibernate:Java对象持久化技术详解>第3版,2020年出版,作者:孙卫琴. EntityManager接口与Session接口的许多功能很相似,以下表1-1对这两个接口的方法做了对比.表1-1 对比EntityManager接口与Session接口 从以上表可以看出,EntityManager接口中的大部分方法在Sesson接口中都有对应的方法.EntityMana