`
小网客
  • 浏览: 1241513 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HQL中like的使用

    博客分类:
  • Java
SQL 
阅读更多

      采用HibernateTemplate的find方法进行访问,看源码:

 

public Object doInHibernate(Session session) throws HibernateException {
				Query queryObject = session.createQuery(queryString);
				prepareQuery(queryObject);
				if (values != null) {
					for (int i = 0; i < values.length; i++) {
						queryObject.setParameter(i, values[i]);
					}
				}
				return queryObject.list();
			}

 

    通过构造query 进行执行,prepareQuery(queryObject);主要针对查询缓存,执行计划,事务timeout等

与实际的like执行无关,重点看queryObject.setParameter(i, values[i]);和queryObject.list();

Query是一个接口其实现类为QueryImpl查看QueryImpl.setParameter,通过

 

 

        private List values = new ArrayList(4);
	private List types = new ArrayList(4);

 进行值和类型的存储

然后看 list的过程

最后是通过调SessionImplementor的list方法参数里包括了hql和参数信息,SessionImplementor也为接口其实现类为SessionImpl调用其list执行hql执行计划,那么拼接hql是在expandParameterLists中进行的,通过字符串的拼接创建hql,那么在参数写的时候就要注意采用普通的String

 

String hql = "from ABC where name like ?";
String nameTmp="abc";
//构造%%

nameTmp="%"+nameTmp+"%";
Object [] values=new Object[]{nameTmp};
然后
getHibernateTemplate().find(hql, values);

 就可以了,

注意:此处就是简单的字符串拼接,而不是sql中like的构造,sql中like的构造的时候带有',如:

 

sql:
select * from t1 where name like '%good%'

 有‘,而hql的拼接就是普通字符串的拼接所以不带'

 

0
0
分享到:
评论
1 楼 a498740995 2012-04-18  

相关推荐

    HQL的具体内容和使用

    HQL遵循与SQL类似的语法结构,支持`select`、`where`、`in`、`like`、`between and`、`order by`、`group by`和`having`等语句块,同时提供`max`、`min`和`sum`等聚合函数。它对底层数据库透明,这意味着你可以在...

    Hibernate中HQL语句的使用[参考].pdf

    Hibernate中HQL语句的使用 HQL(Hibernate Query Language)是 Hibernate 框架中的一种查询语言,它允许开发者使用面向对象的方式来查询数据库。HQL语句的使用是Hibernate中最重要的部分之一,本文将详细介绍HQL...

    全面解析HQL语句 非常详细直接的HQL语句的功能介绍

    HQL是一种面向对象的查询语言,用于在Hibernate框架中执行数据检索任务。它允许开发人员以一种接近Java语言的方式进行数据库操作,从而简化了数据访问层的复杂度。 ### 1. from子句 `from`子句是HQL语句的基础,...

    hql模糊查询hql模糊查询

    根据提供的文件信息,本文将详细解析HQL(Hibernate Query Language)中的模糊查询技术,并通过具体的代码示例来阐述不同方式下的实现方法。 ### HQL模糊查询概述 HQL是Hibernate框架提供的一种面向对象的查询语言...

    HQL查询语言基础知识

    HQL 中的单表查询使用 FROM 语句,例如:FROM eg.Cat as cat,其中 cat 只是一个别名,为了用其他子语句的时候书写简单。 2.多表查询 HQL 中的多表查询使用 FROM 语句,例如:FROM eg.Cat as cat, eg.Dog as dog。...

    HQL查询pdf资料

    在HQL中,可以使用`UPDATE`和`DELETE`语句来批量修改或删除实体。例如,要将所有年龄为18岁的用户年龄更新为20岁,可以使用以下HQL: ```java String hql = "UPDATE User user SET user.age = 20 WHERE user.age = ...

    hibernate的HQL的模糊查询

    在HQL中,我们可以使用`like`关键字来进行模糊查询。`like`关键字后面可以跟一个包含通配符的字符串。常见的通配符有: - `%`:代表零个、一个或多个任意字符。 - `_`:代表一个任意字符。 例如,如果我们有一个`...

    hql查询语句

    在HQL中,`where`子句用于添加查询条件,例如`from Person where name like "tom%"`将返回名字以"tom"开头的所有Person对象。多态查询也是HQL的一个特性,如`from Person as p`和`from java.lang.Object o`表示可以...

    HQL查询语言基础.

    HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的查询语言,它与SQL类似,但专为面向对象编程设计。HQL允许开发者以类和对象的方式编写查询,而不是直接处理数据库表格。 ### 1. ...

    HQL语法大全,并带有详细的例子

    HQL(Hibernate Query Language)是一种面向对象的查询语言,被广泛应用于Hibernate框架中,用于执行数据持久化操作。与传统的SQL相比,HQL更加面向对象,支持诸如继承、多态等特性,这使得它在处理复杂的对象关系...

    hibernate hql大全

    在HQL中,可以使用`?`或`:paramName`作为参数占位符,防止SQL注入,例如: ```java String query = "from Employee e where e.name = :name"; Query q = session.createQuery(query); q.setParameter("name", "John...

    HQL详解

    Hibernate Query Language(HQL)是Hibernate框架中的对象关系映射查询语言,它允许开发者以面向对象的方式书写查询,而无需关心底层数据库的SQL语法。HQL是SQL的一个面向对象的版本,提供了更为简洁且强大的查询...

    Hibernate 课件_HQL

    这意味着在编写查询时,可以使用Java对象模型中的类名和属性名。 - **特性**: - **面向对象**:支持对象的继承、多态以及关联关系等特性。 - **大小写不敏感**:除了Java类名和属性名外,HQL本身对于关键字的大小...

    HQL简易介绍(DOC文档)

    【HQL简介】 HQL,全称Hibernate Query Language,是Hibernate框架中推荐的主要查询语言。它是面向对象的,设计用于处理持久化对象的查询,...理解并熟练掌握HQL是每个使用Hibernate进行数据库操作的开发者必备的技能。

    HQL语句的语法

    HQL(Hibernate Query Language)是Hibernate框架中用于操作对象关系映射(ORM)的SQL-like语言,它允许开发者以面向对象的方式来查询数据库。HQL语句的语法结构与SQL相似,但更注重对象和类的概念。以下将详细介绍...

    hibernate-hql 资料大全

    在上述描述中,提到了几个使用Hibernate HQL进行数据查询的方法,下面将详细解释: 1. **find(String queryString)**: 这是最基础的HQL查询方法,接受一个HQL语句作为参数,返回所有匹配该查询的实体对象。例如,...

    Spring中常用的hql查询方法

    在Spring框架与Hibernate技术结合使用时,HQL(Hibernate Query Language)作为对象查询语言被广泛应用于数据查询操作之中。本文将详细解析Spring框架中常用的HQL查询方法及其应用场景。 #### 一、find(String ...

    HQL语句大全HQL语句大全

    - 使用Session的`createQuery`方法来创建Query对象,并将HQL语句作为参数传入。 ```java Query query = session.createQuery(hql); ``` 4. **设置参数值** - 如果HQL语句中有参数,则需要为这些参数设置值。 ...

    hibernate_hql.rar_HQL

    本篇文章将深入探讨HQL的使用、特点以及在实际项目中的应用。 首先,HQL是Hibernate提供的一个强大的查询工具,它允许开发者用类名和属性名来代替表名和列名,从而避免了直接操作SQL语句的繁琐。HQL支持基本查询、...

Global site tag (gtag.js) - Google Analytics