HQL参数绑定是几种?有什么不同?

Posted 日出东海落西山

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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参数绑定是几种?有什么不同?的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate主要查询方式

WPF MvvmLight RelayCommand 绑定Command 的使用

关于不同页面之间实现参数传递的几种方式讨论

Vue几种钩子函数与钩子函数的参数

Vue几种钩子函数与钩子函数的参数

Blazor - SetParameters - 为啥字符串参数绑定的行为与复杂类型不同