设计模式 Design Patterns

Similar documents
PowerPoint Presentation

untitled

Microsoft Word - 第4章 单表查询—教学设计.doc

untitled

单元四数据的查询 数据库原理与应用 课内例题 任务 5 多表查询 课内例题 例创建数据表 orders, 并向表中添加记录 首先创建表 orders,sql 语句如下 : CREATE TABLE orders( o_num int NOT NULL AUTO_INCREMENT, o_date d

四川省普通高等学校

6-1 Table Column Data Type Row Record 1. DBMS 2. DBMS MySQL Microsoft Access SQL Server Oracle 3. ODBC SQL 1. Structured Query Language 2. IBM

威 福 髮 藝 店 桃 園 市 蘆 竹 區 中 山 里 福 祿 一 街 48 號 地 下 一 樓 50,000 獨 資 李 依 純 105/04/06 府 經 登 字 第 號 宏 品 餐 飲 桃 園 市 桃 園 區 信 光 里 民

1.5招募说明书(草案)

幻灯片 1

3 Driver do Microsoft Access (*.mdb) hisdata IFIX 1.4

epub 61-6

DB2 (join) SQL DB2 11 SQL DB2 SQL 9.1 DB2 DB2 ( ) SQL ( ) DB2 SQL DB2 DB2 SQL DB2 DB2 SQL DB2 ( DB2 ) DB2 DB2 DB2 SQL DB2 (1) SQL (2) S

untitled

untitled

上海浦~1

季刊9web.indd

Microsoft Word - 第4章 单表查询—样章.doc

SDK 概要 使用 Maven 的用户可以从 Maven 库中搜索 "odps-sdk" 获取不同版本的 Java SDK: 包名 odps-sdk-core odps-sdk-commons odps-sdk-udf odps-sdk-mapred odps-sdk-graph 描述 ODPS 基

untitled

帝国CMS下在PHP文件中调用数据库类执行SQL语句实例

目錄 C ontents Chapter MTA Chapter Chapter

PowerPoint Presentation

Guava学习之Resources

设计模式 Design Patterns

设计模式 Design Patterns

PowerPoint Presentation

1 1 大概思路 创建 WebAPI 创建 CrossMainController 并编写 Nuget 安装 microsoft.aspnet.webapi.cors 跨域设置路由 编写 Jquery EasyUI 界面 运行效果 2 创建 WebAPI 创建 WebAPI, 新建 -> 项目 ->

Microsoft PowerPoint - 05-SQL3-advanced.ppt

SQL: Interactive Queries (2)

學 科 100% ( 為 單 複 選 題, 每 題 2.5 分, 共 100 分 ) 1. 請 參 閱 附 圖 作 答 : (A) 選 項 A (B) 選 項 B (C) 選 項 C (D) 選 項 D Ans:D 2. 下 列 對 於 資 料 庫 正 規 化 (Normalization) 的 敘

基于ECO的UML模型驱动的数据库应用开发1.doc

2006年暑期工作安排

Microsoft Word 年9月二级VF真卷.doc

1.5招募说明书(草案)

说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架

ebook46-23

上海市本科教学质量年度报告

1-1 database columnrow record field 不 DBMS Access Paradox SQL Server Linux MySQL Oracle IBM Informix IBM DB2 Sybase 1-2

OOP with Java 通知 Project 3: 3 月 29 日晚 9 点 4 月 1 日上课

设计模式 Design Patterns

中国民生银行股份有限公司2000年年度报告-正文.PDF

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

我 们 再 看 到 尼 西 米 记, 也 会 发 现 当 时 神 的 百 姓 有 一 颗 单 纯 受 教 的 心, 他 们 单 纯 的 听 从 神 的 教 导, 敬 畏 遵 从 神 的 训 诲 当 他 们 明 白 自 己 的 罪 孽 时, 个 个 俯 伏 在 地, 为 罪 痛 悔 哭 泣 在 整 个

通过Hive将数据写入到ElasticSearch

untitled

OOP with Java 通知 Project 4: 4 月 18 日晚 9 点 关于抄袭 没有分数

44 Access 2010 数据库程序设计实验教程 图 3 2 简单查询向导二 2. 使用查询向导创建查询 ts2, 查询 tstud 表的 学号 姓名 字段, tcourse 表的 课程名 字段, tscore 表的 成绩 字段 打开 学生管理.accdb, 使用查询向导创建一个查询, 在 简单

EJB-Programming-3.PDF

OOP with Java 通知 Project 3 提交时间 3 月 29 日晚 9 点 Piazza Project 2 投票

ebook45-5

KillTest 质量更高 服务更好 学习资料 半年免费更新服务

RUN_PC連載_12_.doc

2007

OOP with Java 通知 : Project 2 提交时间 : 3 月 14 日晚 9 点 另一名助教 : 王桢

设计模式 Design Patterns

OOP with Java 通知 : Project 2 提交时间 : 3 月 15 日晚 9 点

ebook4-附录C

设计模式 Design Patterns

Table of Contents

7 以下关于 SessionFactory 的说法正确的是 ( ) A 对于每个数据库事务, 应该创建一个 SessionFactory 对象 B 一个 SessionFactory 对象对应多个数据库存储源 C SessionFactory 是重量级的对象, 不应该随意创建 如果系统中只有一个数据

精 品 库 我 们 的 都 是 精 品 _www.jingpinwenku.com (8) 数 据 库 数 据 库 系 统 和 数 据 库 管 理 系 统 之 问 的 关 系 是 ( ) A) 数 据 库 包 括 数 据 库 系 统 和 数 据 库 管 理 系 统 B) 数 据 库 系 统 包 括

2015 年 高 考 是 四 川 高 考 自 主 命 题 的 最 后 绝 唱, 我 们 将 在 2016 年 使 用 全 国 卷. 那 么 在 这 新 旧 交 替 的 关 键 时 期, 作 为 高 中 教 学 一 线, 特 别 是 目 前 在 2016 级 教 学 的 教 师, 在 高 三 复 习

教 师 资 格 考 试 之 面 试 备 考 指 导 中 公 教 育 教 师 考 试 研 究 院

2. AOP 底层技术实现 小风 Java 实战系列教程 关键词 : 代理模式 代理模型分为两种 : 1) 接口代理 (JDK 动态代理 ) 2) 子类代理 (Cglib 子类代理 ) 需求 :CustomerService 业务类, 有 save,update 方法, 希望在 save,updat

第一章 章标题-F2 上空24,下空24

谷, 你 一 定 会 更 敬 畏 上 帝 的 美 善 和 奇 妙, 不 过, 我 要 跟 你 分 享 一 件 能 与 之 媲 美 的 事, 这 是 发 生 在 印 度 贫 民 窟 当 中 的 见 证, 有 一 位 姐 妹, 一 年 前 她 从 未 听 说 过 基 督, 他 们 的 生 活 很 不 容

Oracle数据库应用技术13 [兼容模式]

JAVA编码规范

建模与图形思考

CC213

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

基于CDIO一体化理念的课程教学大纲设计

NOWOER.OM m/n m/=n m/n m%=n m%n m%=n m%n m/=n 4. enum string x1, x2, x3=10, x4, x5, x; 函数外部问 x 等于什么? 随机值 5. unsigned char *p1; unsigned long *p

Strings

金融信息系统数据库访问实验指导书.doc

Microsoft PowerPoint - 8. 运算符重载 Operator Overloading.pptx

web程序设计.doc

untitled

无类继承.key

OOP with Java 通知 Project 4: 5 月 2 日晚 9 点

Microsoft PowerPoint - string_kruse [兼容模式]

Oracle高级复制冲突解决机制的研究

ChinaBI企业会员服务- BI企业

060522達文西密碼_全_.PDF

(Microsoft Word -

chap07.key

计算机软件技术专业教学计划

OOP with Java 通知 Project 4: 4 月 19 日晚 9 点

一 個 SQL Injection 實 例 的 啟 示 頁 2 / 6 因 此, 在 知 名 網 站 上 看 到 SQL Injection, 讓 人 驚 心, 卻 不 意 外 網 站 專 案 外 包 是 目 前 業 界 的 常 態, 而 在 價 格 取 勝 的 制 度 下, 低 價 得 標 的 S

1 Framework.NET Framework Microsoft Windows.NET Framework.NET Framework NOTE.NET NET Framework.NET Framework 2.0 ( 3 ).NET Framework 2.0.NET F

untitled

untitled

Struts2自定义类型转换.doc

Microsoft Word - Learn Objective-C.doc

提问袁小兵:

幻灯片 1

回滚段探究

EJB-Programming-4-cn.doc

Microsoft Word 電腦軟體設計.doc

Transcription:

丁勇 Email:18442056@QQ.com

学习目标 掌握 HQL 查询 掌握 Criteria 查询

为什么使用 HQL 如何使用 Hibernate 查询所有房屋信息? SQL 语句 : select * from tbl_fwxx Hibernate 中如何实现查询 HQL Hibernate Query Lanuage Hibernate 查询语言

如何使用 HQL 使用 HQL 的四步 1 得到 得到 Session 2 编写 编写 HQL HQL 语句语句 可以没有 select 子句 from TblFwxx 4 2 1 3 3 创建 创建 Query Query from 关键字, 类似于 SQL 语句 实体类名, 而不是数据库表名 4 执行查询

如何使用 HQL 类似 SQL SELECT 语句, 可以使用表的别名 HQL 是面向对象的查询语言 select fw 表示查询 fw 对象 select fw from TblFwxx as fw 表的别名, as 可以省略 执行结果与 from TblFwxx 相同

常见错误 下面代码中有什么错误, 怎么更正? tbl_fwxx 是表名 HQL 是对象查询语言, 应该是类名 :TblFwxx

常见错误 下面代码中有什么错误, 怎么更正? 类名是区分大小写的 应该是 TblFwxx 但 SELECT FROM 等关键字是不区分大小写的

属性查询 select fw from TblFwxx fw 将查询整个对象信息, 我们只想查询 date 和 title 怎么做? select fw.title, fw.date from TblFwxx fw 查询结果仍保存在 list 中 每条数据封装成一个 Object 数组

小结 实现 QxDAO 接口 : public interface QxDAO{ public List listallqx(); }

参数查询 如何实现 : 根据 title 模糊查询房屋信息? select fw from TblFwxx fw where fw.title like '% 健翔桥 %' 支持 '%' 通配符 wher e 子句 支持 like 关键字 这样拼装 HQL 字符串容易带来安全隐患

参数查询 HQL 提供类似 preparedstatement 的参数查询 以 '?' 为占位符 Query 提供 setlong,setdouble,setdate 等方法用于设置不同类型的参数值 设置参数的值 注意 : 1. 必须保证 :query 设置参数的数目 == hql 语句中占位符的数目 2. 占位符下标从 0 开始

参数查询 支持 查询租金在 zj1 到 zj2 范围内的租房信息 : : public List searchbyzj(int and or zj1, not int 和括号 zj2) ; > < = >= <= <> 和 is null; public List searchbyzj(int zj1, in 和 int between 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(); 顺序有调整则代码也要调整 当参数数目增多的时候使用 between 关键字上面的, 上面的代码会带来什么问题 hql 语句怎么写??

参数查询 : 命名参数 查询租金在 zj1 到 zj2 范围内的租房信息 使用 : 参数名 的格式定义命名参数 设定命名参数的值

小结 根据房屋类型查询 :public List searchbyjd(int jdid); 提示 :...where fw.jd.jdid =? 或者...where fw.jd.jdid = :jdid

关联查询 查询 : 联系人为 伊先生 的房屋信息都分布在哪些街道 从两类对象中检索数据 设置关联条件 注意 :jd 是对象 生成的 SQL 语句

小结 写出 HQL 语句 : 查询 亚运村 街道的房屋信息中, 涉及的房屋类型 提示提示 : 亚运村街道的房屋信息 : fw.jd.jdid=39

分页查询 实现分页查询方法 :public List search(int pageno, int pagesize) 使用 order by 对结果排序 分页代码

统计函数 在实现分页功能时, 我们需要知道总记录数以便计算总页数 使用 count() 函数 当结果只有一条记录时, 可以使用 uniqueresult() 得到结果 可以使用的函数还有 :min() max() avg()

小结 写出程序代码 : 1 根据租金排序, 查询从高到低前 10 条记录 String hql = "from TblFwxx fw order by fw.zj desc";... query.setfirstresult(0); query.setmaxresult(10); 2 查询朝阳区房屋租金的平均值 String hql = "select avg(fw.zj) from TblFwxx fw " + +"where fw.jd. tblqx.qx=' 朝阳区 '";... double avgzj = (Double)query.uniqueResult();

对象查询 使用一个查询方法, 同时支持三项功能 : 对 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() + "%' "; }... 使用 Criteria 查询代码更简洁 不方便使用参数查询, 安全性和执行效率不好

使用 Criteria 查询 以对象的方式构建查询 创建 Criteria 对象 模糊查询 大于等于和小于等于 支持 in 和 betwee n 支持类似 EL 表达式的属性浏览语法 可以增加多个排序规则 数组类型

测试程序和运行效果 使用 Criteria 查询 生成的生成的 SQL SQL 语句语句 : Hibernate: select select this_.fwid as as fwid1_0_, this_.uid as as uid1_0_, this_.jdid as as jdid1_0_, this_.lxid as as lxid1_0_, this_.shi as as shi1_0_, this_.ting as as ting1_0_, this_.fwxx as as fwxx1_0_, this_.zj as as zj1_0_, this_.title as as title1_0_, this_.date as as date1_0_, this_.telephone as as telephone1_0_, this_.lxr as as lxr1_0_ from from TBL_FWXX this_ this_ where where this_.title like like? and and this_.zj>=? and and this_.zj<=? and and this_.lxid in in (?, (?,?)?) order order by by this_.fwid asc asc

总结 HQL 的全称是? 和 SQL 相比,HQL 有哪些特点? HQL 语句为 :select jd.jdid,jd.jd from TblJd jd 怎样获得并显示查询结果? 使用 '?' 做占位符的参数查询, 怎样设置参数的值? 命名参数查询的语法是? 怎样创建 Criteria 查询对象?