- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
最经典的hibernate教程_从入门到精通_第4篇(共四篇)
第七章
Hibernate查询
回顾
写出下面两个类的Hibernate配置文件,注意关联的配置。
//订单实体类
public class Order{
private long orderId ;
private String customerName;
private java.sql.Date orderDate;
//setters & getters ...
}
//订单明细实体类
public class OrderLine{
private long lineId ;
private Order order;
private String productName;
private long count;
//setters & getters ...
}
预习检查
Hibernate支持哪两种查询?
HQL是什么?
本章任务
使用Hibernate实现,房屋查询DAO
对title模糊查询
对街道精确查询
对租金使用一个范围查询
查询特定联系人都在哪些街道发布了信息
提供分页查询方法
本章目标
掌握HQL查询
掌握Criteria查询
为什么使用HQL
如何使用Hibernate查询所有房屋信息?
SQL语句:
select * from tbl_fwxx
HQL
Hibernate Query Lanuage
Hibernate查询语言
如何使用HQL
使用HQL的四步
1、得到Session
2、编写HQL语句
3、创建Query
4、执行查询
1
2
3
4
from TblFwxx
from关键字,类似于SQL语句
实体类名,而不是数据库表名
可以没有select子句
如何使用HQL
类似SQL SELECT语句,可以使用表的别名
select fw from TblFwxx as fw
表的别名,as可以省略
HQL是面向对象的查询语言。
select fw表示查询fw对象
执行结果与from TblFwxx相同
常见错误
下面代码中有什么错误,怎么更正?
tbl_fwxx是表名。HQL是对象查询语言,应该是类名:TblFwxx
常见错误
下面代码中有什么错误,怎么更正?
类名是区分大小写的。应该是TblFwxx。
但SELECT、FROM等关键字是不区分大小写的。
属性查询
select fw from TblFwxx fw将查询整个对象信息,我们只想查询date和title怎么做?
select fw.title, fw.date from TblFwxx fw
每条数据封装成一个Object数组
查询结果仍保存在list中
小结
实现QxDAO接口:
public interface QxDAO{
public List listAllQx();
}
参数查询
如何实现:根据title模糊查询房屋信息?
select fw from TblFwxx fw where fw.title like '%健翔桥%'
where子句
支持like关键字
支持'%'通配符
这样拼装HQL字符串容易带来安全隐患
参数查询
HQL提供类似preparedStatement的参数查询
以'?'为占位符
设置参数的值
Query提供setLong,setDouble,setDate等方法用于设置不同类型的参数值
注意:
1. 必须保证:query设置参数的数目 == hql语句中占位符的数目
2. 占位符下标从 0 开始。
参数查询
查询租金在zj1到zj2范围内的租房信息:public List searchByZj(int zj1, int zj2)。
public List searchByZj(int zj1, int zj2){
Session session = this.getSession();
String hql = "from TblFwxx fw "
+"where fw.zj >= ? and fw.zj <= ?";
Query query = session.createQuery(hql);
query.setInteger(1, zj1);
query.setInteger(2,zj2);
return query.list();
}
支持:
>、< 、 = 、 >= 、 <= 、<> 和is null;
and、or、not和括号;
in和between
使用between关键字上面的hql语句怎么写?
当参数数目增多的时候,上面的代码会带来什么问题?
当参数数目增多时,代码可读性下降;将下标顺序硬编码,参数顺
您可能关注的文档
- 新视野大学英语视听说教程第一册听力及听力原文.doc
- 新课标人教版三年级语文下册教案全集1.doc
- 新课标高中数学人教A版必修1第一章集合与函数概念优秀教案.doc
- 新课程教材新增内容、新题型及热点内容的应考对策【精品-ppt】.ppt
- 新都酒店:内部控制审计报告.ppt
- 新闻摄影中的技术技巧92.ppt
- 新闻摄影中的技术技巧【精品-ppt】.ppt
- 新闻摄影技巧万里.ppt
- 新闻摄影课教学基本课件.doc
- 施工企业资质管理及工程创优评奖管理相关规定.ppt
- GB/T 29324-2024架空导线用碳纤维增强复合材料芯.pdf
- 《GB/T 29324-2024架空导线用碳纤维增强复合材料芯》.pdf
- GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集.pdf
- 《GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集》.pdf
- 中国国家标准 GB/T 43905.1-2024焊接及相关工艺中烟尘和气体取样的实验室方法 第1部分:电弧焊中烟尘排放速率的测定和分析用烟尘的收集.pdf
- 中国国家标准 GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范.pdf
- GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范.pdf
- 《GB/T 18910.21-2024液晶显示器件 第2-1部分:无源矩阵单色液晶显示模块 空白详细规范》.pdf
- GB/T 43860.1220-2024触摸和交互显示 第12-20部分:触摸显示测试方法 多点触摸性能.pdf
- 中国国家标准 GB/T 43860.1220-2024触摸和交互显示 第12-20部分:触摸显示测试方法 多点触摸性能.pdf
文档评论(0)