首页 > 代码库 > HQL参数绑定是几种?有什么不同?
HQL参数绑定是几种?有什么不同?
(1)占位符”?”
通过Query对象,使用“?”占位符,我们可以先设定查询参数,之后通过setType()方法设置指定的参数
需要注意的是,必须保证每个占位符都设置了参数值,而且必须依照“?”所设定顺序,使用对应参数类型的setType()方法设定。设置参数值时,下标从0开始,而不是使用PreparedStatment对象时的从1开始
(2)命名参数
例子:
“select user.password from User as user where user.name= :name”;
Query query = session.createQuery(hql);
query.setString(“name”,”admin”);
解释:
:name即命名参数,通过session.createQuery方法构造Query实例后,我们即可根据此参数进行参数值设定,设定方式与”?”占位符相同,只是下标换成了命名参数,从而不需要依照特定的顺序。
注意,“:”后面跟着参数名。
(3)封装参数
在查询条件很多的情况下,如果认为传递很多的参数不方便的话,Hibernate还提供了第三种方式,实现了动态设置查询参数,那就是将参数封装为一个bean,然后通过Query对象的setProperties(Object bean)实现参数设定
HQL参数绑定是几种?有什么不同?
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。