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

HQL中各种方式的参数绑定

阅读更多
按参数名绑定参数:
Query q=session.createQuery("from Customer c where c.name=:cName"+"and c.age=:cAge");
q.setString("cName",name);
q.setInteger("cAge",age);


按参数位置绑定参数:
Query q=session.createQuery("from Customer c where c.name=?"+"and c.age=?");
q.setString(0,name);
q.setInteger(1,age);


关于特殊字符的处理:参数名绑定的时候,会在参数两边加上单引号
程序的可读性:使用参数名更清晰
使用参数名字方式的绑定,可以在一个HQL中多次重复使用相同的参数名字:
from Customer c where c.firstName like :name or c.lastName like :name

使用setEntity方法绑定对象类型的参数:
session.createQuery("from Order o where o.customer=:customer").setEntity("customer",customer).list();


使用setParameter方法绑定任意类型的参数:
Query q=session.createQuery("from Order o where o.customer=:customer"+"and o.orderNumber like :orderNumber");
q.setParameter("customer",customer,Hibernate.entity(Customer.class));
q.setParameter("orderNumber",orderNumber,Hibernate.STRING);


使用setProperties方法绑定参数:
String hql = "from User u where u.name=:name and u.age=:age and u.phone=:phone";
Query q= s.....();
Properties p = ...;
p.put("name","zhangsan");
p.put("age",22);
p.put("phone","12345");
q.setProperties(p);
分享到:
评论

相关推荐

    hql模糊查询hql模糊查询

    因此,在实际开发中应尽量避免直接拼接字符串的方式,而是采用参数绑定的方式。 ### 示例3:使用StringBuffer进行模糊查询 ```java StringBuffer hql = new StringBuffer("from Subject as s where s.subname like...

    HQL语言大全 高清晰可复制版

    类似于SQL的预编译语句,HQL也支持参数绑定,防止SQL注入。例如: ```sql FROM Employee e WHERE e.name = :name ``` 然后在执行时传入参数值。 5. **HQL与Criteria查询的比较** Hibernate还提供了Criteria ...

    Spring中hql语句的常用方法

    本文档将详细介绍如何在Spring环境中运用HQL进行数据查询操作,包括基本查询、参数绑定以及命名查询等高级特性。 #### 一、基本查询方法 在Spring框架中,`HibernateTemplate`类提供了多种方法来执行HQL查询,这些...

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

    这里使用了参数绑定的方式,将事件标题作为参数传递给HQL查询语句。 #### 五、总结 HQL作为一种强大的面向对象查询语言,其灵活性和简洁性使得开发者能够更加高效地进行数据库操作。通过对上述内容的学习,相信你...

    HQL实用技术

    ### HQL实用技术详解 #### 一、HQL语言简介 HQL (Hibernate Query ...以上是关于HQL实用技术的相关知识点总结,涵盖了HQL的基本语法、执行流程、参数绑定以及一些高级特性,希望能帮助开发者更好地理解和应用HQL。

    HQL 语法总结 实体查询

    在HQL查询中,可以通过参数绑定来增强查询的安全性和灵活性。 - **通过顺序占位符**: ```java hql = "from TUser user where user.name = ? and user.age > ?"; Query query = session.createQuery(hql); ...

    hql语句大全

    - 引用占位符也是一种参数绑定方式,如`String hql = "from TUser where name=:name and age=:age"`,然后通过`query.setParameter("name", "Erica")`和`query.setParameter("age", 20)`来设置参数。 HQL的强大...

    hql增删改查

    在HQL中,可以使用参数绑定的方式来代替硬编码的值。例如: ```java String hql = "from Employee as e where e.name = ?"; Query query = session.createQuery(hql); query.setString(0, "Tom"); Employee e = ...

    Hql语句注意事项总结

    另一种方法是使用Hibernate的参数绑定功能,直接将数组作为参数传递,Hibernate会自动处理这些参数。 在处理这类问题时,需要注意以下几点: - **性能优化**:大量使用`in`子句可能导致SQL性能下降,尤其是在数组很...

    hibernate hql大全

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

    HQL批量插入、更新和删除

    - 在使用原生SQL时,需要确保参数绑定的安全性,防止SQL注入攻击。 - 需要注意类型转换和数据一致性问题,确保数据的正确性。 - 直接使用原生SQL时,可能需要手动管理事务,以保证数据的一致性和完整性。 #### ...

    Spring--HQL-chaxun.zip_HQL

    HQL支持参数绑定,可以使用占位符`?`或`:paramName`,然后通过`setXXX()`方法将参数值传入,避免SQL注入问题。 5. **多态查询**: HQL支持多态查询,可以直接查询基类,返回所有继承自基类的子类对象。 6. **...

    03-HQL实用技术.pdf

    - **目标**: 掌握HQL数据查询技术、实体查询、属性查询、参数绑定、查询排序、查询分组及查询分页等技能。 #### 四、总结 通过对以上知识点的学习,可以深入理解HQL在处理不同场景下的应用技巧,特别是关联关系的...

    hql语句的学习,很有用的东西

    此外,HQL还支持参数绑定,防止SQL注入攻击。你可以使用占位符`?`或`:paramName`,然后在执行前设置参数值: ```java query.setParameter("age", 18); ``` 除了基本的查询,HQL还提供了复杂的联接操作,如内连接、...

    Hibernate 经常用的一些HQL语句

    通过上述实例,我们可以看到HQL不仅支持基本的CRUD操作,还支持更高级的功能,如模糊查询、参数绑定、聚合函数、分页以及多表关联等。掌握这些技巧,对于高效地利用Hibernate进行数据库操作至关重要。

    hibernate 中HQL语句查询学习笔记

    ### Hibernate中HQL语句查询学习笔记 #### HQL基础 **HQL**(Hibernate Query Language)是Hibernate框架推荐使用的查询语言,它提供了一种面向...通过合理使用HQL的各种特性,可以编写出高效且易于维护的查询语句。

    hibernate-HQL用例

    6. **参数绑定** HQL支持参数化查询,可以防止SQL注入攻击。例如,动态传入年龄参数查找相应用户: ```sql SELECT u FROM User u WHERE u.age = :age ``` 在执行时通过Query接口的setParameter方法传入实际值。...

    hibernate3.2 (十)HQL查询

    HQL支持参数绑定,避免SQL注入,提高代码可读性和安全性。例如: ```java Query query = session.createQuery("from User where username=:username"); query.setParameter("username", "admin"); List<User> users ...

    Hibernate_NSQL&HQL增删改操作

    2. **类型安全**:HQL支持类型安全的参数绑定,而NSQL则需要显式指定参数类型。 3. **可移植性**:HQL由于其面向对象的特点,在不同的数据库之间具有更好的可移植性;而NSQL可能会依赖于特定数据库的SQL方言。 4. **...

    hql 的使用

    8. **参数绑定**:在 HQL 查询中,可以使用问号 `?` 或命名参数 `:name` 绑定变量,如 `from User user where user.name = :name`,然后通过 `query.setParameter()` 设置值。 9. **Java 代码示例**:在 Java 代码...

Global site tag (gtag.js) - Google Analytics