【Hibernate学习之路6】HQL
来源:互联网 发布:知往事之不可追 编辑:程序博客网 时间:2024/05/29 18:40
1.概述:HOL看上去很像SQL,但不要被语法结构所迷惑,HQL被有意识的设计为完全面向对象的查询。
2.from子句:
Query query = session.createQuery("from Dept"); List<Dept> list = query.list(); for(Dept d:list){ System.out.println(d.getDname()); }
3.select子句:
Query q = session.createQuery("select pname,price from Product"); List<Object[]> list = q.list(); for(Object[] o : list){ System.out.println(o[0]+" "+o[1]); }//注意://1.HQL中,select子句执行后返回的是Object[]类型//2.用的createSQLQuery返回值定义为list<Object[]>//由于sql的特殊原因 可能返回值的数组里面 list.get(i)的长度不固定,//可能是1或者更多,当是1的时候系统就不认定它是一个Object[] 而是一个String所以会报这样一个错java.lang.String cannot be cast to[Ljava.lang.Object
4.where子句:
//Query q = session.createQuery("from Product where price>3000"); //Query q = session.createQuery("from Product where pname='iphone5'"); //Query q = session.createQuery("from Product where price between 2000 and 3000"); //Query q = session.createQuery("from Product where price>=2000 and price<=3000");// Query q = session.createQuery("from Product where upper(remark)=remark");// // List<Product> list = q.list();// for(Product p : list){// System.out.println(p.getPname()+" "+p.getPrice());// } //预编译 //Query q = session.createQuery("from Product where price>?"); //q.setDouble(0, 2000);// Query q = session.createQuery("from Product where pname like ?");// q.setString(0, "%5%");// List<Product> list = q.list();// for(Product p : list){// System.out.println(p.getPname()+" "+p.getPrice());// }
5.其它字句
//order by排序// Query q = session.createQuery("from Product order by price desc");// List<Product> list = q.list();// for(Product p : list){// System.out.println(p.getPname()+" "+p.getPrice());// } //分组函数// Query q = session.createQuery("select remark,count(*) from Product group by remark");// List<Object[]> list = q.list();// for(Object[] o : list){// System.out.println(o[0]+" "+o[1]);// } //连接查询// Query q = session.createQuery("select a.ename,b.dname from Emp a,Dept b where a.deptno=b.deptno");// List<Object[]> list = q.list();// for(Object[] o : list){// System.out.println(o[0]+" "+o[1]);// }// Query q = session.createQuery("from Emp where sal>(select avg(sal) from Emp)");// List<Emp> list = q.list();// for(Emp e : list){// System.out.println(e.getEname()+" "+e.getJob()+" "+e.getSal());// }//
注意:在HQL中,除了针对JAVA类的类名方法之外,大小写不敏感
0 0
- 【Hibernate学习之路6】HQL
- hibernate之HQL学习
- 【SSH】hibernate之hql学习
- Hibernate学习之HQL查询
- Hibernate学习---第十节:Hibernate之hql
- Hibernate的学习之路十七(HQL条件查询)
- Hibernate学习之HQL详解1
- hibernate学习之HQL那些事
- Hibernate学习之---使用HQL查询
- Hibernate学习笔记:HQL
- Hibernate HQL 学习点滴
- hibernate HQL学习笔记
- Hibernate之HQL总结
- Hibernate之HQL妙用
- Hibernate之HQL查询
- hibernate之hql总结
- Hibernate 之 HQL
- Hibernate之HQL总结
- THINKPHP扩展类:log类的使用
- 自定义View之onMeasure()
- Java NIO:NIO概述
- ubuntu14.04.1 安装配置jdk1.8
- Exception
- 【Hibernate学习之路6】HQL
- Find Minimum in Rotated Sorted Array
- hibernate异常
- forward和redirect的区别
- 倒排文件(一)
- 2015年创业中遇到的技术问题:141-150
- ACM-荷兰国旗问题
- Playmaker全面实践教程之Playmaker常用工具
- 使用ANT打包Android应用