HQL(Hibernate Query Language)
来源:互联网 发布:怎么黑淘宝店铺 编辑:程序博客网 时间:2024/05/18 00:13
前言:
最近在用HQL,无奈不会,所以总结一些这个东东,希望也能给大家带来帮助
是什么:
HQL提供更加丰富灵活、更为强大的查询能力;接近SQL语句查询语法;
[select/delete/update…][from…][where…][group by…][having…][order by…]……asc/desc
基础知识:
除Java类和属性的名称外,其对大小写不敏感,
别名开头小写——不错的习惯
上盘干货:
from Customer c inner join c orders o group by c age;(1) select c ID,c name,c age,o ID,o order_number,o customer_ID from Customer c inner join c orders c group by c age;(2)
语句(1)会返回持久化对象,置于Hibernate的Session缓存中,缓存负责它们唯一及与后台数据库数据的同步,只有事务提交后它们才会清除;
而语句(2)返回的是关系数据,不用缓存,在检索之后应用程序不访问它们,其所占用的内存有可能被JVM的垃圾回收器回收,且Hibernate不会同步它们的修改;
如果某一个数据库操作:1、数据量大,2、一般情况下不会对数据修改,不需要Hibernate的Session缓存的管理,采用第一种查询方式,会导致大量持久化对象位于Hibernate的Session缓存中,而且Hibernate的Session缓存还要负责它们与数据库数据的同步。而采用第二种查询方式,显然就会提高查询性能;
参数绑定:
名称:在HQL语句中定义命名参数要用”:”开头
Query query=session createQuery(“from User user where user name = :customername and user age=:customerage ”);query setString(“customername”,name);query setInteger(“customerage”,age);
位置:
Query query=session createQuery(“from User user where user name=? and user age =? ”);query setString(0,name);query setInteger(1,age);
setParameter()方法String hql=”from User user where user name=:customername ”;Query query=session createQuery(hql);query setParameter(“customername”,name,Hibernate STRING);//命名参数名称,命名参数实际值,以及命名参数映射类型
setParameter当映射类型单一时,两个参数也是可以接受的,但是像Java util Date类型,映射类型:DATE or TIMESTAMP,所以是不能接受滴
setProperties()方法http://write.blog.csdn.net/postedit/72673682
Customer customer=new Customer();customer setName(“pansl”);customer setAge(80);Query query=session createQuery(“from Customer c where c name=:name and c age=:age ”);query setProperties(customer);
好处:http://write.blog.csdn.net/postedit/72673682
利用预编译SQL语句缓存提升查询效率;防止SQL Injection安全漏洞的产生,类似sql注入
后语:
不知道是谁说了一句这样的话:㊣真正的高手并不是精通一切,而是精通在合适的场合使用合适的手段(这话说的太令人感动了,努力着)
感谢大家(大方之家)的分享:
百度百科———MY Love♥
- Hibernate Query Language(HQL)
- HQL(Hibernate Query Language)
- HQL(Hibernate Query Language)
- Hibernate Query Language (HQL)
- HQL(Hibernate Query Language)
- HQL(Hibernate Query Language)使用详解
- hibernate-HQL(query language)-16
- About Hibernate Query Language(HQL)
- Hibernate学习笔记-HQL(Hibernate Query Language)
- Hibernate学习笔记-HQL(Hibernate Query Language)
- Hibernate查询(Query Language,hql,ejbql,nativeql,qbc,qbe)
- Hibernate查询语言(Query Language), 即HQL
- 【Hibernate框架开发之八】Hibernate 查询语言Query Language(HQL)
- Hibernate中使用Session操作数据以及部分简单HQL(hibernate query language)
- hibernate参考手册之---Hibernate查询语言(Query Language), 即HQL
- Hibernate检索方式之HQL(Hibernate Query Language)
- HQL(Hive query language)常用语句
- 关于HQL(Hibernate Query Language)的查询方法
- Qt+VLC简单的使用显示视频Demo
- MySQL忘记密码的解决办法
- 我所理解的AOP,面向切面编程
- android常用系统广播及其处理
- PI查看执行日记
- HQL(Hibernate Query Language)
- MindMaze要把VR治疗系统带到美国,专攻中风康复治疗
- 自主开发项目说明(新锐售楼管理系统)
- java开发常用工具类集合总结
- Thinkphp3.2中controller控制器根据curl函数请求接口数据及curl具体函数用法
- angularjs directive ng-repeat里ng-click 不起作用解决办法
- 基于物理的渲染—迪士尼的渲染模型
- overridePendingTransition切换动画
- js自带函数