Hibernate教程从入门到精通第四篇共四篇_第1页
Hibernate教程从入门到精通第四篇共四篇_第2页
Hibernate教程从入门到精通第四篇共四篇_第3页
Hibernate教程从入门到精通第四篇共四篇_第4页
Hibernate教程从入门到精通第四篇共四篇_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章Hibernate1回顾写出下面两个类的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; /se

2、tters & getters .2预习检查Hibernate支持哪两种查询?HQL是什么?3本章任务使用Hibernate实现,房屋查询DAO对title模糊查询对街道精确查询对租金使用一个范围查询查询特定联系人都在哪些街道发布了信息提供分页查询方法4本章目标掌握HQL查询掌握Criteria查询5为什么使用HQL如何使用Hibernate查询所有房屋信息?SQL语句:select * from tbl_fwxxHibernate中如何实现查询HQLHibernate Query LanuageHibernate查询语言?6如何使用HQL使用HQL的四步1、得到Session2、编写HQL语

3、句3、创建Query4、执行查询1234from TblFwxxfrom关键字,类似于SQL语句实体类名,而不是数据库表名可以没有select子句7如何使用HQL类似SQL SELECT语句,可以使用表的别名select fw from TblFwxx as fw表的别名,as可以省略HQL是面向对象的查询语言。select fw表示查询fw对象执行结果与from TblFwxx相同8常见错误下面代码中有什么错误,怎么更正?tbl_fwxx是表名。HQL是对象查询语言,应该是类名:TblFwxx9常见错误下面代码中有什么错误,怎么更正?类名是区分大小写的。应该是TblFwxx。但SELECT、

4、FROM等关键字是不区分大小写的。10属性查询select fw from TblFwxx fw将查询整个对象信息,我们只想查询date和title怎么做? select fw.title, fw.date from TblFwxx fw每条数据封装成一个Object数组查询结果仍保存在list中?11小结实现QxDAO接口:public interface QxDAOpublic List listAllQx();12参数查询如何实现:根据title模糊查询房屋信息?select fw from TblFwxx fw where fw.title like %健翔桥%where子句支持lik

5、e关键字支持%通配符这样拼装HQL字符串容易带来安全隐患?13参数查询HQL提供类似preparedStatement的参数查询以?为占位符设置参数的值Query提供setLong,setDouble,setDate等方法用于设置不同类型的参数值注意:1. 必须保证:query设置参数的数目 = hql语句中占位符的数目2. 占位符下标从 0 开始。14参数查询查询租金在zj1到zj2范围内的租房信息:public List searchByZj(int zj1, int zj2)。public List searchByZj(int zj1, int zj2)Session session

6、= this.getSession();String hql = from TblFwxx fw +where fw.zj = ? and fw.zj 、= 、 = 、 和is null;and、or、not和括号;in和between使用between关键字上面的hql语句怎么写?当参数数目增多的时候,上面的代码会带来什么问题?当参数数目增多时,代码可读性下降;将下标顺序硬编码,参数顺序有调整则代码也要调整15参数查询:命名参数查询租金在zj1到zj2范围内的租房信息。使用“:参数名”的格式定义命名参数设定命名参数的值16小结根据房屋类型查询:public List searchByJd(i

7、nt jdId);提示:.where fw.jd.jdid = ?或者.where fw.jd.jdid = :jdid17关联查询查询:联系人为“伊先生”的房屋信息都分布在哪些街道。从两类对象中检索数据设置关联条件。注意:jd是对象。生成的SQL语句18小结写出HQL语句:查询“亚运村”街道的房屋信息中,涉及的房屋类型。提示:亚运村街道的房屋信息: fw.jd.jdid=3919分页查询实现分页查询方法:public List search(int pageNo, int pageSize) 。使用order by对结果排序分页代码20统计函数在实现分页功能时,我们需要知道总记录数以便计算总

8、页数。使用count()函数当结果只有一条记录时,可以使用uniqueResult()得到结果可以使用的函数还有:min()、max()、avg()21小结写出程序代码:1、根据租金排序,查询从高到低前10条记录。2、查询朝阳区房屋租金的平均值。String hql = from TblFwxx fw order by fw.zj desc;.query.setFirstResult(0);query.setMaxResult(10);String hql = select avg(fw.zj) from TblFwxx fw + +where fw.jd. tblQx.qx=朝阳区;.dou

9、ble avgZj = (Double)query.uniqueResult();22对象查询使用一个查询方法,同时支持三项功能:对title模糊查询对房屋类型精确查询对租金使用一个范围查询public List search(TblFwxx condition)String hql = select fw from TblFwxx fw hql += where 1=1 ;if (condition.getTitle()!=null)hql += and fw.title like % + condition.getTitle() + % ;.代码啰嗦,不易维护不方便使用参数查询,安全性和执

10、行效率不好使用Criteria查询代码更简洁23使用Criteria查询以对象的方式构建查询创建Criteria对象模糊查询大于等于 和 小于等于支持in和between数组类型支持类似EL表达式的属性浏览语法可以增加多个排序规则24使用Criteria查询测试程序和运行效果生成的SQL语句:Hibernate: select this_.fwid as fwid1_0_, this_.uid as uid1_0_, this_.jdid as jdid1_0_, this_.lxid as lxid1_0_, this_.shi as shi1_0_, this_.ting as ting1_0_, this_.fwxx as fwxx1_0_, this_.zj as zj1_0_, this_.title as title1_0_, this_.date as date1_0_, this_.telephone as telephone1_0_, this_.lxr as lxr1_0_ from TBL_FWXX this_ where this_.title like ? and this_.zj=? and this_.zj=? and this_.lx

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论