HQL语句的动态赋值
HQL语句的动态赋值
- 1、“?”号代表参数
- 2、自定义参数名称
在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();
HQL语句的动态赋值相关推荐
- 三、通过session操作hibernate(hql语句)
在没有将spring和hibernate整合在一起的时候,要使用hibernate,在持久层需要如下步骤: 一.在还没有对hibernate进行spring的整合的时候,我们需要写一个session工 ...
- mysql存储过程into_MySQL存储过程中使用SELECT …INTO语句为变量赋值
使用SELECT -INTO语句为变量赋值 在MySQL存储过程中,可以使用SELECT -INTO语句对变量进行赋值,该语句在数据库中进行查询,并将得到的结果赋值给变量.SELECT -INTO语句 ...
- mysql(十)条件语句、循环语句、动态执行SQL语句
MySQL数据库-条件语句.循环语句.动态执行SQL语句 1.if条件语句 delimiter \\ CREATE PROCEDURE proc_if () BEGINdeclare i int de ...
- hibernate 学习之——hql 语句
hibernate 学习之--hql 语句 hibernatre hql 语句:是对于hibernate的orm模式的一种类似于JDBC语句的面对对象的操作语句 特点 : 1.对于类名属性名区分大小写 ...
- HQL语句的基本语法和使用
HQL查询 Criteria查询对查询条件进行了面向对象封装,符合编程人员的思维方式,不过HQL(Hibernate Query Lanaguage)查询提供了更加丰富的和灵活的查询特性 ,因此 H ...
- mysql hql查询语句_使用Query进行HQL语句查询和SQL语句查询
HQL的语法比较简单,与普通SQL的区别之处是针对对象的不同,在查询语句中将sql中的表名替换成了sql中的持久化类名,因为hibernate机制是基于对象进行查询的. 不带参数的查询,语句是&quo ...
- Hibernate查询技术之HQL语句
1.session中的get( )和load( )方法来查询对象.但其查询功能有限. private void testGet(){//1.初始化,读取配置文件hibernate.cfg.xmlCon ...
- 简易HQL语句转换为可执行的SQL语句
主要利用Hibernate中封装的一个转换器实现类:QueryTranslatorImpl, hql语句中无参数时,用下面的方法: /** * 将hql语句转换为sql语句,无参数 * * @para ...
- HQL语句中数据类型转换,及hibernate中createQuery执行hql报错
一.HQL语句中数据类型转换: 我们需要从数据库中取出序号最大的记录,想到的方法就是使用order by子句进行排序(desc倒序),然后取出第一个对象,可是当初设计数据库时(我们是在原来的数据库的基 ...
最新文章
- linux c 线程同步的三种方法
- 创建Maven源代码和Javadoc工件
- ExtJs2.0学习系列(13)--Ext.TreePanel之第二式
- Java校招笔试题-Java基础部分(四)
- Bootstrap3 面板 .panel 容器
- 用OpenCV制作一个低成本的立体相机
- error LNK2019: 无法解析的外部符号 ,该符号在函数 中被引用
- VMware vCenter Server安装与配置
- 论文阅读《Vision-Aided RAIM: A New Method for GPS Integrity Monitoring in Approach and Landing Phase》3
- 研究手机直播流媒体框架
- 2016——注定不平凡的一年
- 删除后别人的微信号变成wxid_重磅!只需三步修改微信号,不用设置出生日期...
- Roman Numeral Converter--将给定的数字转换为罗马数字
- mysql dbi dbd_安装DBI和DBD包
- 诺康得NKD完成500万天使轮融资,专注于糖化学细胞治疗
- 网站制作过程中需要注意的SEO知识
- hue集成hive详解
- Java自动生成二维码总结
- python 方差膨胀因子 检验_从零开始学Python【22】--线性回归诊断(第一部分)
- postgresql 的 base64 解密、解码