HQL语句的动态赋值


在JDBC编程中,PreparedStatement对象为开发提供了方便,他不但可以为动态语句进行赋值,而且可以避免SQL的注入式攻击;此外,由于它使用了SQL的缓存技术,还可以提高SQL语句的执行效率。在HQL查询语句中也提供了类似的方法,其实现方式主要有以下两种。

1、“?”号代表参数

此种方式与PreparedStatement及其相似,通过Query对象的setParamenter()f方法进行赋值,在HQL语句中以“?”为参数。例如查询id为3的User对象,可以使用以下方法。

//HQL语句
String hql="from User u where u.id=?";
//创建Query对象
Query query = session。createQuery(hql);
//HQL参数赋值
query=	query.setParameter(0,3);
//获取查询结果集
list=query.list();

2、自定义参数名称

此种方式通过Query对象的setParameter()方法进行赋值,但是HQL1语句中的参数可以自定义,它通过“:”号与自定义参数名组合的方式实现。例如查询id为3的User对象,可以使用以下方法:

//HQL语句
String hql="from User u where u.id=:userId";
//创建Query对象
Query query = session。createQuery(hql);
//HQL参数赋值
query=	query.setParameter("userId",3);
//获取查询结果集
list=query.list();
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值