最经典的hibernate教程_从入门到精通_第4篇(共四篇).ppt

最经典的hibernate教程_从入门到精通_第4篇(共四篇).ppt

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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语句怎么写? 当参数数目增多的时候,上面的代码会带来什么问题? 当参数数目增多时,代码可读性下降;将下标顺序硬编码,参数顺

您可能关注的文档

文档评论(0)

rovend + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档