`
mixer_a
  • 浏览: 356927 次
社区版块
存档分类
最新评论

Hibernate里面使用sql查询

阅读更多

hibernate3.0中是可以使用sql语句,但一般还是hql语句的,毕竟我们采用hibernate就是为了使用o/r mapping,如果还用sql就没意义了.除非实在没有办法,不然不要用.
sql的查询:

Java代码 
  1. Query query=session.createSQLQuery(  
  2. "select {c.*} from CUSTOMERS c where c.Name like:customerName ","c",Customer.class);  
  3. query.setString("customerName","T%");  
  4. List result=query.list();hql的左连接查询:  
  5. Query query=session.createSQLQuery("from Customer c left join fetch c.orders o" + "where c.name like 'T%' ");List result=query.list();  
 

 

-------------------------------------------------------------------------------------------------------------

查看文章hibernate中使用session.createSQLQuery(sql)返回值的操作实例2009-07-29 23:25

session.createSQLQuery(sql) 返回的是一个List<Object[]>,对它的操作一般是遍历后,

用Object[]数组的元素来实例化一个对象

如:

Java代码 
  1. /*** @param categoryid 顶级分类id 
  2. * @return AbstractCategory类型的集合 
  3. */public List<AbstractBrand> listAllBrandWithProductCount(int categoryid){  
  4. StringBuffer sql=new StringBuffer();  
  5. sql.append("select b.id,b.en_name,b.cn_name,count(*) from ");  
  6. sql.append("brand b, product p ");  
  7. sql.append("where b.id=p.bid and p.cid=? ");  
  8. sql.append("group by p.bid ");  
  9. List<Object[]> result= getSession()  
  10. .createSQLQuery(sql.toString())   
  11. .setParameter(0, categoryid)  
  12. .list();  
  13. List<AbstractBrand> brands=new Vector<AbstractBrand>();  
  14. for(Object[] datas :result){  
  15. brands.add(new AbstractBrand((Integer)datas[0],  
  16. datas[1].toString(),  
  17. datas[2].toString(),  
  18. ((BigInteger)datas[3]).intValue())); return brands;}  
 
9
0
分享到:
评论
2 楼 bk_lin 2012-04-13  
谢谢分享
1 楼 aiyan3344 2012-04-11  
Query query=this.getSession().createSQLQuery(hql)
.addScalar("id", Hibernate.LONG)
... .setResultTransformer(Transformers.aliasToBean(pojo.class));

这样写可以省去后面的步骤了setFirstResult,setMaxResults还可以设置分页

相关推荐

    hibernate里面的 两种查询

    Criteria API 是Hibernate提供的一种面向对象的查询方式,它允许开发者通过构建对象来表示查询条件,而不是直接编写SQL语句。这种查询方式更加符合面向对象编程的思想,降低了SQL语句的硬编码,提高了代码的可读性...

    Hibernate查询练习小例子

    利用MYSQL数据库提供的样例数据库world建立的查询小例子。已经建立好了数据库对应的...本项目主要是为了练习使用Hibernate查询数据库。如果有什么问题可以发站内信或者邮件asddf14@hotmail.com。我会尽量解答一下~~~

    hibernate里面常用jar包

    HQL是Hibernate提供的面向对象的查询语言,与SQL类似但更贴近Java对象,使得开发者能以类和对象的方式进行查询。 接下来,我们探讨一下hibernate lib这个压缩包中的其他常见jar包: 1. **hibernate-core-x.x.x....

    hibernate+struts实现数据库查询的例子

    在这个例子中,Hibernate可能会被用来定义实体类,配置映射文件,并编写SQL查询语句,以便从数据库中检索数据。 `Struts2`是基于MVC设计模式的Web应用框架,它的主要职责是处理HTTP请求,调度控制器并决定哪个...

    Hibernate框架的搭建与使用

    本教程将深入探讨Hibernate框架的搭建与使用,帮助你理解如何将Java对象与数据库表进行无缝交互。 首先,我们需要了解Hibernate的核心概念。Hibernate提供了一个数据访问接口,允许我们在Java应用程序中使用面向...

    hibernate 调用oracle函数

    4. **定义Hibernate Native SQL查询**:由于Hibernate默认不支持调用存储过程或函数,我们需要使用`@NamedNativeQuery`或`@SqlResultSetMapping`注解来定义一个原生SQL查询,用于调用Oracle函数。例如: ```java @...

    Hibernate实例开发 HQL 与 QBC 查询

    首先,HQL是Hibernate专门设计的一种面向对象的查询语言,它的语法类似于SQL,但更注重对象而非表。例如,如果我们有一个`User`实体,我们可以使用HQL来获取所有用户: ```java Session session = sessionFactory....

    hibernate API帮助文档 及hibernate学习笔记

    - **HQL(Hibernate Query Language)**: Hibernate特有的面向对象的查询语言,类似于SQL,但操作对象而非表。 4. **实体管理** - **持久化状态**: 实体可以处于瞬时、持久化和脱管状态,理解这些状态对于正确...

    Hibernate查询小例子

    利用MYSQL数据库提供的样例数据库world建立的查询小例子。已经建立好了数据库对应的...本项目主要是为了练习使用Hibernate查询数据库。如果有什么问题可以发站内信或者邮件asddf14@hotmail.com。我会尽量解答一下~~~

    spring boot 2多数据源,里面有hibernate和mybatis的多数据源代码

    **MyBatis** 则是一个轻量级的ORM框架,它比Hibernate更加灵活,允许开发者自定义SQL语句,更易于进行复杂的查询操作。MyBatis的多数据源配置可以通过配置多个MapperFactoryBean和DataSource来实现,每个数据源对应...

    Hibernate 5.3.7 +mysql jar包

    5. **HQL(Hibernate Query Language)**:Hibernate提供的面向对象的查询语言,类似SQL,但更面向对象。 6. **Criteria API**:另一种查询方式,提供动态构建查询的能力。 7. **事务管理(Transaction Management)...

    JAVA操作SQL数据库

    "JAVA操作SQL数据库"这一主题涵盖了如何使用Java语言与各种SQL(结构化查询语言)数据库进行交互的知识点。以下是一些关键概念和步骤的详细说明: 1. **JDBC(Java Database Connectivity)**:JDBC是Java API,它...

    hibernate配置文件

    hibernate配置文件 里面提供了连接数据库 数据库使用的方言 是否打印SQL语句 sql语句的格式 以及对象-关系映射文件的地址等

    hibernate基本jar包(数据库是Oracle)

    8. **HQL与 Criteria 查询**:Hibernate 提供了自己的查询语言HQL,类似于SQL,但面向对象。另外,Criteria API提供了一种类型安全的查询方式。 9. **缓存机制**:Hibernate支持第二级缓存,通过插件如Ehcache,...

    springMVC+spring+ hibernate查询

    在实际开发中,为了提高代码的可读性和可维护性,通常会使用 Hibernate 的 HQL 或者 Criteria API 来执行查询,而不是直接写 SQL。这样做可以使数据库相关的操作更加面向对象,同时减少硬编码的 SQL,有利于跨数据库...

    用Hibernate框架实现的网上书店系统

    以模糊查询为例,我们可以通过Session的createQuery方法创建HQL语句,然后使用参数绑定避免SQL注入,最后执行查询并获取结果集。 在实际业务场景中,书店系统可能还需要处理用户登录、购物车、订单支付等功能。...

    Hibernate's JPA.rar

    标题"Hibernate's JPA.rar"表明这是一个关于使用Hibernate实现Java Persistence API (JPA)的压缩文件,可能包含示例代码、配置文件或者必要的库文件。Hibernate是一个流行的对象关系映射(ORM)框架,它使得Java...

    JSP 个人博客 hibernate

    数据库使用MySql,提供了建表代码create.sql,Dao默认使用Jdbc的实现,相应的数据库信息到dbconfig.properties里面去修改,如果切换Dao到Hibernate的实现,相应的数据库信息到hibernate.cfg.xml里面去修改。...

    hibernate-distribution-3.6.6.Final.tar.gz

    - **HQL(Hibernate Query Language)**:是Hibernate的专用查询语言,类似于SQL,但更面向对象,支持更复杂的查询逻辑。 - **第二级缓存**:Hibernate支持插件式的缓存策略,可以提高数据访问性能,如Ehcache是...

    Hibernate开发实战讲解(源代码)Java源码

    Hibernate通过提供一种中间层,将Java对象与数据库表进行映射,使得数据的存取变得简单直观,无需编写大量的SQL语句。 在源代码中,我们可以预见到以下几个关键部分: 1. **配置文件**:通常包括`hibernate.cfg....

Global site tag (gtag.js) - Google Analytics