`

hiabernate 中createQuery与createSQLQuery两者区别

    博客分类:
  • Java
阅读更多

hiabernate 中createQuery与createSQLQuery两者区别是:


前者用的hql语句进行查询,后者可以用sql语句查询

前者以hibernate生成的Bean为对象装入list返回

后者则是以对象数组进行存储

所以使用createSQLQuery有时候也想以hibernate生成的Bean为对象装入list返回,就不是很方便

突然发现createSQLQuery有这样一个方法可以直接转换对象

Query query = session.createSQLQuery(sql).addEntity(XXXXXXX.class);

XXXXXXX 代表以hibernate生成的Bean的对象,也就是数据表映射出的Bean。

呵呵以后多注意,还是时不时的要看看hibernate各个对象方法的使用。



还有另外一个相关的小细节应注意:

比如有这样一个po

PO: User.class
properties: userId,userName
DDL: create table tuser (userid varchar(10),username varchar(20));

当执行:
    session.createQuery("from User u").list()时生成的SQL:
  select userid,username from tuser;

当执行:
  
session.createQuery("from User u").iterator()时生成的SQL:
  
select userid from tuser;
  
可以看出list()一次将数据从数据库中读出直接填充到List中
  
iterator()将数据的主键从数据库中读出,当循环这个Iterator时才添加执行:
  
select userid,username from user where userid=?;把数据读出。

在不同的应用范围使用不同的方法,具体在hibernate应用中应当注意。

 

 

转载 :【http://blog.163.com/charm_888/blog/static/608350020107254126654/】

分享到:
评论

相关推荐

    关于hibernate 的createQuery和createSqlQuery 的区别

    Hibernate 中的 createQuery 和 createSqlQuery 区别详解 在 Hibernate 中,createQuery 和 createSqlQuery 是两个常用的查询方法,但是它们之间存在着一些关键的区别。了解这两个方法的差异对于正确地使用 ...

    hibernate 的createSQLQuery的几种用法

    Hibernate 的 createSQLQuery 是 Hibernate 框架中的一种强大且灵活的查询机制,它允许开发者使用原生 SQL 语句来查询数据库。下面是 createSQLQuery 的几种常见用法: 一、简单的 SQLQuery 在最简单的情况下,...

    SSH实现分页

    在Hibernate中,可以通过Session接口的createQuery或createSQLQuery方法结合setParameter来实现分页。具体步骤如下: - 使用createQuery或createSQLQuery创建查询。 - 调用setFirstResult设置起始位置。 - 调用...

    ceateQuery ceateSQLQuery

    此外,还有一个关于`createQuery`的迭代器方法`iterator()`与`list()`的区别。`list()`方法会一次性从数据库中读取所有匹配的记录,并填充到一个List中,适合于数据量较小的情况。而`iterator()`方法则只获取记录的...

    hibernate分页查询

    Hibernate分页查询基于SQL的LIMIT和OFFSET子句,通过Session的createQuery或createSQLQuery方法创建查询,并设置FirstResult和MaxResults属性来实现分页。FirstResult表示从结果集的第几个元素开始获取,MaxResults...

    hibernate实现增删改查

    4. **查询**:使用Session的createQuery或createSQLQuery方法创建HQL(Hibernate Query Language)或SQL查询,执行查询并获取结果集。例如,`List<User> users = session.createQuery("from User").list()`将返回...

    hibernate查询详细代码讲解

    在Hibernate中,我们可以通过Session对象的createQuery或createSQLQuery方法来执行HQL。例如: ```java Session session = sessionFactory.openSession(); Transaction transaction = session.beginTransaction(); ...

    Android应用源码Hibernate4Android.rar

    通过Session的createQuery或createSQLQuery方法,开发者可以构建复杂查询。 6. 数据库初始化 在Android应用启动时,通常需要初始化数据库,包括创建表和填充初始数据。Hibernate4Android提供了...

    Struts + Hibernate 实现简单分页功能

    在SessionFactory的帮助下,我们可以创建Session对象,然后调用它的createQuery或createSQLQuery方法来构造SQL查询语句。在SQL中,我们可以使用LIMIT和OFFSET子句来限制返回的记录数,OFFSET表示从哪一条记录开始,...

    hibernate的HQL的jar

    4. **查询**:使用Session的createQuery或createSQLQuery方法创建HQL或SQL查询,然后设置参数并执行。 5. **结果处理**:HQL查询返回的结果可以是List对象,其中包含了查询结果对应的Java对象。 总的来说,...

    Hibernate-HQL.rar_HQL_hibernate hql

    在Hibernate中,通过Session对象的createQuery或createSQLQuery方法创建HQL查询,然后调用list、uniqueResult、scroll等方法执行查询。执行过程中,Hibernate会自动进行类型转换和结果集的封装,极大地降低了开发...

    4.Hibernate-04查询以及优化策略1

    在上面的代码中,我们使用 `createQuery` 方法创建了一个 HQL 查询对象,该对象将根据 `Order` 对象的属性来查询数据库中的数据。 1.2 基于 SQL 的 HQL 查询 基于 SQL 的 HQL 查询是 Hibernate 提供的一种查询方式...

    实现自己的Hibernate框架之Session 方法实现

    在Hibernate中,Session是与数据库交互的主要接口,它负责对象的持久化、查询以及事务管理。Session的方法包括保存、更新、删除、加载、查询等,这些都是ORM框架的基础功能。 1. **保存(save())**:当新创建一个...

    Hibernate_NSQL&HQL增删改操作

    ### Hibernate中的NSQL与HQL增删改操作详解 #### NSQL(Native SQL)与HQL(Hibernate Query Language) 在Hibernate框架中,进行数据库操作时,开发者可以选择使用两种不同的查询语言:NSQL(Native SQL)和HQL...

    Hibernate查询解决方案

    Session 对象与查询操作 在 Hibernate 中,所有持久化操作都需要通过 Session 对象来完成,包括查询操作。Session 对象提供了多种查询方法,如 `load`、`get`、`createQuery` 和 `find` 等。 - **`load` 方法**:...

    Hibernate分页总结

    使用`createQuery()`或`createSQLQuery()`创建Query对象后,可以调用`setFirstResult()`设置起始索引,`setMaxResults()`设置每页的最大数量来实现分页。例如: ```java Session session = sessionFactory....

    Query对象setResultTransFormer()

    Query 对象可以通过 Session 对象的 createSQLQuery() 或 createQuery() 方法创建,例如: ```java Session session = sf.openSession(); Query query = session.createSQLQuery("select * from Tree t where pid in...

    hibernate+oracle

    - **查询**:`Session`提供`createQuery()`、`createSQLQuery()`等方法执行HQL(Hibernate Query Language)和原生SQL。 **6. 示例代码** 在名为`HTest`的项目中,可能包含以下部分: - `hibernate.cfg.xml`:配置...

    Java开发工程师招聘面试题

    12. Hibernate的`createQuery`与`createSQLQuery`: - `createQuery`用于执行HQL(Hibernate Query Language),它是面向对象的查询语言。 - `createSQLQuery`用于执行原生的SQL查询,提供更多底层数据库操作的...

    Hibernate查询语言

    在实际开发中,HQL可以通过SessionFactory的createQuery()或createSQLQuery()方法执行。同时,Hibernate还提供了Criteria API作为另一种查询方式,它提供了一种更面向对象的查询方式,但底层也会被转换为HQL。 此外...

Global site tag (gtag.js) - Google Analytics