如果查询返回多个值用list()方法
public void testQuery(){ Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); //创建SessionFactory Session session = factory.openSession(); //创建Session session.beginTransaction(); //开始事务 Query query = session.createQuery("from Student"); List list = query.list(); // 用list方法返回多个值 //List list = session.createQuery("from Student").list(); for(int i=0;i<list.size();i++){ Student student = (Student)list.get(i); System.out.print(student.getId()+" "); System.out.print(student.getName()+" "); System.out.print(student.getSex()+" "); System.out.print(student.getBirthday()); System.out.println(); } session.getTransaction().commit(); //提交事务 session.close(); //关闭Session }
当确定返回的实例只有一个或者null时 用uniqueResult()方法
public void testGet(){ Configuration config = new Configuration().configure(); SessionFactory factory = config.buildSessionFactory(); Session session = factory.openSession(); session.beginTransaction(); Query query = session.createQuery("from Student s where s.id=?"); query.setString(0, "2"); Student student = (Student)query.uniqueResult(); //当确定返回的实例只有一个或者null时 用uniqueResult()方法 //Student student = (Student)session.createQuery("from Student s where s.id=?").setString(0,"5").uniqueResult(); System.out.println(student.getName()); System.out.println(student.getBirthday()); session.getTransaction().commit(); session.close(); }
相关推荐
在Java的持久化框架Hibernate中,查询操作是其核心功能之一。本篇主要探讨的是Hibernate对数据库查询中聚合函数的应用,这些功能使我们能够高效地处理数据统计和汇总任务。在学习过程中,我们经常会遇到诸如求和...
在Hibernate中,我们通常通过Session接口的createSQLQuery方法来创建SQLQuery对象,例如: ```java Session session = sessionFactory.openSession(); String sql = "SELECT * FROM note WHERE id = ?"; SQLQuery ...
### HIBERNATE_QUERY知识点详解 #### 一、概述 Hibernate作为一款强大的对象关系映射(ORM)框架,为Java开发者提供了一套高效且简洁的方式来处理数据库操作。它支持多种查询方式,包括面向对象的查询语言(HQL)...
# Hibernate Query Language (HQL): An Object-Oriented Variant of SQL ## 一、引言 Hibernate 是一款流行的 Java 持久层框架,它极大地简化了对象与关系数据库之间的映射过程。Hibernate Query Language(简称 ...
Hibernate的核心接口之一是SessionFactory,它负责创建Session对象。SessionFactory是线程安全的,一般在应用启动时创建并保存在整个应用生命周期中。Session对象代表了一个数据库事务,它是与数据库交互的主要接口...
Hibernate 提供了多种方式来执行原生 SQL 语句,其中之一是使用 `Session.createSQLQuery()` 方法,该方法返回一个 `SQLQuery` 对象,该对象提供了执行原生 SQL 语句的方法。 例如,我们可以使用以下代码来执行一个...
3. **Session接口**:Session是Hibernate的工作单元,相当于JDBC中的Connection,它提供了与数据库交互的方法,如开始和结束事务、保存、更新、删除对象等。在每次业务操作前后,都需要打开和关闭Session。 4. **...
总之,Hibernate的SQLQuery接口提供了一种灵活的方式来执行原生SQL查询,并将结果映射到Java对象。通过使用别名、结果集映射和命名SQL查询,开发者可以处理复杂的数据库交互,同时保持代码的清晰和整洁。
MyEntity result = (MyEntity) query.uniqueResult(); ``` 如果查询返回的是多个对象,可以使用`setResultTransformer()`配合`Transformers.aliasToBean()`将结果集转换为指定类型的对象列表: ```java query....
在Java的持久化框架Hibernate中,有时我们需要使用原生的SQL查询来实现特定的数据库操作,这时就需要利用到SQLQuery接口。本篇文章将详细解析如何使用Hibernate的SQLQuery来进行本地SQL查询,并探讨其各种应用场景。...
1. HQL查询:使用Session的createQuery()方法创建HQL(Hibernate Query Language)查询对象,然后设置参数,最后调用list()或uniqueResult()执行查询。 2. QBC查询:Query By Criteria API允许基于Java对象属性进行...
User user = query.uniqueResult(); if (user != null) { tx.commit(); return user; } else { tx.rollback(); return null; } } catch (Exception e) { if (tx != null) { tx.rollback(); } e....
泛型是Java SE 5.0引入的新特性,它允许在类、接口和方法中使用类型参数,从而实现更强大的类型检查和减少类型转换的冗余。 1. 泛型BaseDAO:`GenericBaseDao.java`和`GenericBaseDaoInter.java` 泛型BaseDAO的主要...
- 可以通过 `Session.createQuery` 创建 `Query` 对象,然后调用 `list()` 或 `uniqueResult()` 等方法获取结果。 - 示例: ```java Query query = session.createQuery(hql); List[]> results = query.list();...
3. **执行查询并获取结果**:最后,通过Query对象的`list()`或`uniqueResult()`等方法执行查询并处理结果。 #### QBC查询方式:基于Criteria的查询 除了HQL,Hibernate还支持QBC查询方式,这是一种基于Criteria ...
Hibernate的核心在于它的Query API,它提供了Criteria、HQL(Hibernate Query Language)和JPQL(Java Persistence Query Language)等方式来构建SQL语句。Hibernate会根据这些查询语句动态生成对应的SQL,并执行在...
3. **执行SQL查询**:在Java代码中,我们可以使用SessionFactory的createSQLQuery方法来获取SQLQuery对象,然后调用其setParameters方法设置参数,最后调用list或uniqueResult等方法来执行查询: ```java Session ...
这里的 `setParameter()` 方法用于设置参数,`uniqueResult()` 方法用于获取唯一的查询结果。 总结来说,`HibernateUtil` 类的完善意味着优化数据库操作的便捷性,而 HQL 查询则提供了灵活且强大的对象查询能力。...
Criteria查询是Hibernate提供的另一种查询方式,相比HQL(Hibernate Query Language),它更加面向对象,允许动态构建查询。Criteria查询主要涉及以下组件: 1. `Session.createCriteria(Class clazz)`: 创建...
查询是Hibernate最丰富的功能之一,支持HQL(Hibernate Query Language)和Criteria API等。 1. HQL:类似于SQL,但面向对象。例如,查找所有用户: ```java String hql = "from User"; List<User> users = session...