Microsoft PowerPoint - ch7_1 DA class

Similar documents
I

《C语言基础入门》课程教学大纲

目 录 一 系 统 访 问... 1 二 门 户 首 页 申 报 用 户 审 核 用 户... 2 三 系 统 登 录 用 户 名 密 码 登 录 新 用 户 注 册 用 户 登 录 已 注 册 用

国债回购交易业务指引

第2章 数据类型、常量与变量

何 秋 琳 张 立 春 视 觉 学 习 研 究 进 展 视 觉 注 意 视 觉 感 知


说 明 为 了 反 映 教 运 行 的 基 本 状 态, 为 校 和 院 制 定 相 关 政 策 和 进 行 教 建 设 与 改 革 提 供 据 依 据, 校 从 程 资 源 ( 开 类 别 开 量 规 模 ) 教 师 结 构 程 考 核 等 维 度, 对 2015 年 春 季 期 教 运 行 基

龚 亚 夫 在 重 新 思 考 基 础 教 育 英 语 教 学 的 理 念 一 文 中 援 引 的 观 点 认 为 当 跳 出 本 族 语 主 义 的 思 维 定 式 后 需 要 重 新 思 考 许 多 相 连 带 的 问 题 比 如 许 多 发 音 的 细 微 区 别 并 不 影 响 理 解 和

修改版-操作手册.doc

定 位 和 描 述 : 程 序 设 计 / 办 公 软 件 高 级 应 用 级 考 核 内 容 包 括 计 算 机 语 言 与 基 础 程 序 设 计 能 力, 要 求 参 试 者 掌 握 一 门 计 算 机 语 言, 可 选 类 别 有 高 级 语 言 程 序 设 计 类 数 据 库 编 程 类

HSK( 一 级 ) 考 查 考 生 的 日 常 汉 语 应 用 能 力, 它 对 应 于 国 际 汉 语 能 力 标 准 一 级 欧 洲 语 言 共 同 参 考 框 架 (CEF) A1 级 通 过 HSK( 一 级 ) 的 考 生 可 以 理 解 并 使 用 一 些 非 常 简 单 的 汉 语

Template BR_Rec_2005.dot

2006年顺德区高中阶段学校招生录取分数线

2 熟 悉 Visual Basic 的 集 成 开 发 环 境 3 了 解 可 视 化 面 向 对 象 编 程 事 件 驱 动 交 互 式 开 发 等 基 本 概 念 4 了 解 Visual Basic 的 特 点 环 境 要 求 与 安 装 方 法 1 Visual Basic 开 发 应 用

国 际 中 国 研 究 动 态 是 中 国 社 会 科 学 院 国 际 中 国 学 研 究 中 心 出 品 的 以 介 绍 国 际 中 国 问 题 研 究 最 新 成 果 为 宗 旨 的 电 子 杂 志 计 划 每 月 出 版 一 期 除 编 译 和 摘 编 网 络 和 中 外 期 刊 库 上 可

深圳市新亚电子制程股份有限公司

<433A5C446F63756D656E E E67735C41646D696E F725CD7C0C3E65CC2DBCEC4CFB5CDB3CAB9D3C3D6B8C4CFA3A8BCF2BBAFA3A95CCAB9D3C3D6B8C4CF31302D31392E646F63>

2. 本 次 修 改 后, 投 资 者 申 购 新 股 的 持 有 市 值 要 求 市 值 计 算 规 则 及 证 券 账 户 使 用 的 相 关 规 定 是 否 发 生 了 变 化? 答 : 未 发 生 变 化 投 资 者 申 购 新 股 的 持 有 市 值 是 指, 以 投 资 者 为 单 位

世华财讯模拟操作手册

中 国 软 科 学 年 第 期!!!

电信系教学大纲的基本规范

教师上报成绩流程图

(Microsoft Word - NCRE\314\345\317\265\265\367\325\37313\324\27221\272\3051.doc)


Cybozu Garoon 3 管理员手册

第3章 创建数据库

目 录 关 于 图 标... 3 登 陆 主 界 面... 3 工 单 管 理... 5 工 单 列 表... 5 搜 索 工 单... 5 工 单 详 情... 6 创 建 工 单... 9 设 备 管 理 巡 检 计 划 查 询 详 情 销 售 管

Microsoft Word - 第7章 图表反转形态.doc

全国教师资格认定管理信息系统

 编号:

( ) 信 号 与 系 统 Ⅰ 学 科 基 础 必 修 课 教 周 2016 年 06 月 13 日 (08:00-09:35) ( )

第二次实习报告

操作手册

Microsoft Word - 文件汇编.doc

生产支援功能 使用说明书(IP-110 篇)

<443A5C6D B5C30312EB9A4D7F7CEC4B5B55C30322EBACFCDACCEC4B5B55C C30342EC8CBC9E7CCFC5C31332ECFEEC4BFC5E0D1B55C E30385C322EB2D9D7F7CAD6B2E12E646F63>

目 录 第 一 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 硬 件 使 用 介 绍... 3 第 二 章 博 星 卓 越 电 子 商 务 营 销 策 划 实 践 平 台 管 理 员 端 功 能 使 用 介 绍 系 统 管 理 员 登 陆 班

采 取 行 动 的 机 会 90% 开 拓 成 功 的 道 路 2

抗 日 战 争 研 究 年 第 期

第 一 部 分 MagiCAD for Revit 安 装 流 程

火车浏览器脚本制作教程

上海证券交易所会议纪要

金 不 少 于 800 万 元, 净 资 产 不 少 于 960 万 元 ; (3) 近 五 年 独 立 承 担 过 单 项 合 同 额 不 少 于 1000 万 元 的 智 能 化 工 程 ( 设 计 或 施 工 或 设 计 施 工 一 体 ) 不 少 于 2 项 ; (4) 近 三 年 每 年

2.5 选 举 陈 晓 非 女 士 为 第 六 届 董 事 会 董 事 候 选 人 的 议 案 ; 2.6 选 举 卢 婕 女 士 为 第 六 届 董 事 会 董 事 候 选 人 的 议 案 ; 2.7 选 举 张 文 君 先 生 为 第 六 届 董 事 会 独 立 董 事 候 选 人 的 议 案

3 复 试 如 何 准 备 4 复 试 成 绩 计 算 5 复 试 比 例 6 复 试 类 型 7 怎 么 样 面 对 各 种 复 试 04 05


目 录 页 1. 欢 迎 使 用 网 上 预 约 面 谈 访 问 系 统 新 用 户 新 用 户 登 入 帐 户 程 序 启 动 网 上 预 约 面 谈 访 问 帐 户 核 对 帐 户 的 地 址 资 料

正 规 培 训 达 规 定 标 准 学 时 数, 并 取 得 结 业 证 书 二 级 可 编 程 师 ( 具 备 以 下 条 件 之 一 者 ) (1) 连 续 从 事 本 职 业 工 作 13 年 以 上 (2) 取 得 本 职 业 三 级 职 业 资 格 证 书 后, 连 续 从 事 本 职 业

中 日 信 息 化 的 比 较 与 合 作 一 中 日 信 息 化 的 规 模 比 较

0 年 上 半 年 评 价 与 考 核 细 则 序 号 部 门 要 素 值 考 核 内 容 考 核 方 式 考 核 标 准 考 核 ( 扣 原 因 ) 考 评 得 3 安 全 生 产 目 30 无 同 等 责 任 以 上 道 路 交 通 亡 人 事 故 无 轻 伤 责 任 事 故 无 重 大 质 量


关于2010年上半年(31次)全国计算机等级考试报名的通知

一 公 共 卫 生 硕 士 专 业 学 位 论 文 的 概 述 学 位 论 文 是 对 研 究 生 进 行 科 学 研 究 或 承 担 专 门 技 术 工 作 的 全 面 训 练, 是 培 养 研 究 生 创 新 能 力, 综 合 运 用 所 学 知 识 发 现 问 题, 分 析 问 题 和 解 决

登录、注册功能的测试用例设计.doc

类 似 地, 又 可 定 义 变 下 限 的 定 积 分 : ( ). 与 ψ 统 称 为 变 限 积 分. f ( ) d f ( t) dt,, 注 在 变 限 积 分 (1) 与 () 中, 不 可 再 把 积 分 变 量 写 成 的 形 式 ( 例 如 ) 以 免 与 积 分 上 下 限 的

徐天宏:《基因天堂》.doc

第三章 作业

系统设计文档_样稿管理模块 V1.1_.doc

工 程 造 价 咨 询 企 业 管 理 系 统 操 作 手 册 目 录 1 造 价 企 业 登 录 企 业 基 本 信 息 查 看 企 业 人 员 信 息 查 看 企 业 基 本 信 息 操 作 企 业 简 介 企 业 章

Microsoft Word - GT21L16S2W简要说明V3.7.doc

,,,,, :,, (.,, );, (, : ), (.., ;. &., ;.. &.., ;, ;, ),,,,,,, ( ) ( ),,,,.,,,,,, : ;, ;,.,,,,, (., : - ),,,, ( ),,,, (, : ),, :,

2009 DN600 ~ InfoWorks CS km km km m 3 /d 1 U U 2 1 InfoWorks CS % km km 2 Vol.

第 期 李 伟 等 用 方 法 对 中 国 历 史 气 温 数 据 插 值 可 行 性 讨 论

四川省农村义务教育学生

云信Linux SSH认证代理用户手册

<4D F736F F D20B9D8D3DAB0BABBAAA3A8C9CFBAA3A3A9D7D4B6AFBBAFB9A4B3CCB9C9B7DDD3D0CFDEB9ABCBBE C4EAC4EAB6C8B9C9B6ABB4F3BBE1B7A8C2C9D2E2BCFBCAE92E646F6378>

i 1) 系 统 运 作 前 设 定 *1. [2.1 网 页 主 机 名 称 设 定 ] -- 设 定 校 务 系 统 的 主 机 IP 地 址, 以 供 其 他 个 人 电 脑 连 接 及 使 用 该 系 统 *2. [2.3.1 输 入 / 修 改 学 校 资 料 ] -- 输 入 系 统 使

<4D F736F F D20BFC9B1E0B3CCD0F2BFD8D6C6CFB5CDB3C9E8BCC6CAA6B9FABCD2D6B0D2B5B1EAD7BC2E646F63>

公 开 刊 物 须 有 国 内 统 一 刊 (CN), 发 表 文 章 的 刊 物 需 要 在 国 家 新 闻 出 版 广 电 总 局 ( 办 事 服 务 便 民 查 询 新 闻 出 版 机 构 查 询 ) 上 能 够 查 到 刊 凡 在 有 中 国 标 准 书 公 开

一、资质申请

第 三 章 审 计 证 据 2

2016年南开大学MBA招生信息

关于修订《沪市股票上网发行资金申购

白皮书

珠江钢琴股东大会

上证指数

3 月 30 日 在 中 国 证 券 报 上 海 证 券 报 证 券 时 报 证 券 日 报 和 上 海 证 券 交 易 所 网 站 上 发 出 召 开 本 次 股 东 大 会 公 告, 该 公 告 中 载 明 了 召 开 股 东 大 会 的 日 期 网 络 投 票 的 方 式 时 间 以 及 审

自 服 务 按 钮 无 法 访 问 新 系 统 的 自 服 务 页 面 因 此 建 议 用 户 从 信 网 中 心 ( 主 页, 右 下 角 位 置 的 常 用 下 载, 或 校 园 网 用 户 自 服 务 ( 首 页

用节点法和网孔法进行电路分析

4 进 入 交 互 区 设 置 的 组 件 管 理, 在 组 件 管 理 中, 教 师 可 以 选 择 课 程 空 间 中 的 所 有 组 件, 并 通 过 点 击 启 用 或 不 启 用 选 定 组 件 在 课 程 空 间 中 的 显 示 5 进 入 工 作 室 管 理 的 工 作 室 首 页,

Microsoft Word - 数据库实验2007.doc

<4D F736F F D20B3D6B2D6CFDEB6EEB1EDB8F1D7EED6D52E646F63>

¹ º ¹ º 农 业 流 动 人 口 是 指 户 口 性 质 为 农 业 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个 月 及 以 上 的 流 动 人 口 非 农 流 动 人 口 是 指 户 口 性 质 为 非 农 户 口 在 流 入 地 城 市 工 作 生 活 居 住 一 个

doc

微软用户

目 录 一 激 活 账 号... 2 二 忘 记 密 码 后 如 何 找 回 密 码?... 3 三 如 何 管 理 学 校 信 息 及 球 队 学 生 教 师 等 信 息... 6 四 如 何 发 布 本 校 校 园 文 化? 五 如 何 向 教 师 发 送 通 知? 六

乐视云视频发行平台 操作手册 V1.1

<4D F736F F D C3E6CFF2B6D4CFF3A3A8B5DAC8FDD5C220C0E0CCD8D0D4A3A92E646F63>

学位论文文档编辑与提交

附 件 1: 中 国 安 全 生 产 协 会 关 于 开 展 2015 年 安 全 评 价 师 职 业 资 格 鉴 定 工 作 的 通 知 各 有 关 单 位 有 关 人 员 : 中 安 协 安 评 委 号 按 照 人 力 资 源 和 社 会 保 障 部 职 业 技 能 鉴 定 中

上海证券交易所会议纪要

2 任 务 目 标 任 务 实 施 学 一 学 安 全 用 电 1. 安 全 用 电 的 意 义 2. 人 体 触 电 的 基 本 知 识 1 2 1mA 10 30mA 50mA 100mA 750ms Hz

ICS 35

权 利 要 求 书 1/2 页 1. 一 种 基 于 螺 旋 扫 描 轨 道 的 光 学 投 影 断 层 成 像 方 法, 其 特 征 在 于, 包 括 : 针 对 螺 旋 轨 道 扫 描 得 到 的 一 系 列 投 影 图, 利 用 投 影 图 的 轴 向 位 置 和 投 影 角 度, 按 照 以

随着执业中医师资格考试制度的不断完善,本着为我校中医学专业认证服务的目的,本文通过对我校中医类毕业生参加2012年和2013年的中医执业医师考试成绩及通过率、掌握率进行分析,并与全国的平均水平进行差异比较分析,以此了解我校执业中医师考试的现状,进而反映我校中医类课程总体教学水平,发现考核知识模块教学中存在的不足,反馈给相关学院和教学管理部门,以此提高教学和管理水平。

物 流 从 业 人 员 职 业 能 力 等 级 证 书 分 为 四 个 级 别, 分 别 为 初 级 助 理 级 中 级 和 高 级 ; 采 购 从 业 人 员 职 业 能 力 等 级 证 书 分 为 三 个 级 别, 分 别 为 中 级 高 级 和 注 册 级 请 各 有 关 单 位 按 照 通

证券代码: 证券简称:长城电脑 公告编号:

全国建筑市场注册执业人员不良行为记录认定标准(试行).doc

一 六 年 级 下 册 教 科 书 总 体 说 明 ( 一 ) 教 学 内 容 本 册 教 科 书 一 共 安 排 了 5 个 教 学 单 元, 其 中 前 4 个 单 元 为 新 知 识, 第 五 单 元 是 对 整 个 小 学 阶 段 所 学 数 学 知 识 系 统 的 整 理 和 复 习

Transcription:

Quiz 1. Describe the similarities and differences of Tester class and GUI class 2. What is the function of GUI class? 3. What is the function of PD(problem domain) class? 4. How does a GUI class interact with PD class? 1/105 Introduction to Data Access Classes (Reference Chapter 7) 2

Topics Make objects persistent ( 持 久 ) How to create a DB and data table Design a data access class PD class Communicates with a data access class Use a relational database with Java 3/105 Making Objects Persistent Object persistence The capacity to store and retrieve information from files/database Using it When to store instances or their attributes values for future retrieval 4/105

Object Storage Object Storage namely Object serialization ( 序 列 化 ) To store and retrieve entire instances Advantage The object can be retrieved intact ( 完 好 无 损 ) It is not necessary to re-create the object 5/105 Attribute storage Attribute storage - Involves Writing attribute values to a file or database Retrieving attribute values from a file or database 6/105

Files a collection of data or information that has a name, called the filename stored on devices for Long-term storage Magnetic disks Optical disks Magnetic tapes Sequential and random access files 7/105 Data structure in a file File is a group of related records One field in each record is a record key Record key is a unique identifier for a record Sequential file Records stored in order by record key Data hierarchy 8/105

Files and data Streams Java views a file as a data stream In a program, we read information from an input stream and write information to an output stream An I/O stream is either a character stream, which deals with text data byte stream, which deal with image and sound data The data is coded using Unicode Unicode : 国 际 标 准 字 符 集 9/105 Buffering Improves performance of I/O Copies each output( 字 节 或 字 符 ) to a region of memory called a buffer Entire buffer output to disk at once One long disk access takes less time than many smaller ones ( 成 批 读 入 和 读 出, 高 速 缓 存 访 问, 效 率 比 较 高 ) BufferedOutputStream 类 能 够 在 内 存 里 为 输 出 文 件 建 立 一 个 缓 冲 区 BufferedInputStream buffers file input 10/105

Sequential Access File Is a Java File The files Can be byte or text Must start at the beginning and read it sequentially 顺 序 读 写 Can not jump to a specific record number Can not insert or delete a specific record Difficult to update a sequential-access file Entire file must be rewritten to change one field 11/105 Sequential Access File cont. How to read and write Using method readline() in BufferedReader claas Using method println() in PrintStream class java.io.reader java.io.bufferedreader 12/105

Random-access access files Access individual records directly and quickly Use fixed length for every record Easy to calculate record locations Insert records without destroying ( 破 坏 )other data in file Reads or writes data in spot ( 点 )specified by file-position pointer Manipulates( 操 纵 )all data as primitive( 基 本 ) types Normally writes one object at a time to file 13/105 Selected Classes in the java.io package File class File 类 的 方 法 主 要 用 于 获 取 文 件 本 身 的 一 些 信 息 例 如, 文 件 所 在 的 目 录 文 件 的 长 度 等 Constructor File(String filename), 其 中 参 数 filename 是 文 件 名 File(String directorypath, String filename), 其 中 参 数 directorypath 是 文 件 的 路 径 Methods String getname(): 获 取 文 件 的 名 字 boolean exists(): 判 断 文 件 是 否 存 在 long length(): 获 取 文 件 的 长 度 ( 单 位 是 字 节 ) boolean isfile(): 判 断 是 否 是 一 个 文 件 14/105

Cont. FileInputStream class( 字 节 输 入 流 类 ) 可 实 现 以 字 节 为 单 位 顺 序 读 取 外 存 文 件 的 内 容 到 内 存,( 用 于 读 取 诸 如 图 像 数 据 之 类 的 原 始 字 节 流 ) 所 用 的 method 是 read 关 闭 字 节 输 入 流 用 的 method 是 close Constructor FileInputStream (String filename), 其 中 参 数 filename 是 文 件 名 ( 包 括 路 径 ) 用 给 定 的 文 件 名 创 建 一 个 FileInputStream 实 例, 用 来 打 开 一 个 到 达 该 文 件 的 输 入 流, 这 个 文 件 就 是 源 ( 在 外 存 上 ) FileInputStream (File f), 其 中 参 数 f 是 指 定 的 一 个 文 件 用 来 指 定 要 打 开 那 个 文 件 15/105 Cont. FileOutputStream class( 字 节 输 出 流 类 ) 用 于 实 现 以 字 节 为 单 位 顺 序 写 数 据 到 文 件, 所 用 的 方 法 是 write, 关 闭 字 节 输 出 流 使 用 方 法 close 创 建 FileOutputStream 类 的 实 例 也 称 为 创 建 文 件 字 节 输 出 流 Constructor FileOutputStream (String filename), 其 中 参 数 filename 是 文 件 名 FileOutputStream (File f), 其 中 参 数 f 是 指 定 的 一 个 文 件 16/105

Cont. FileReader class( 字 符 输 入 流 类 ) 用 于 实 现 以 字 符 为 单 位 从 文 件 中 顺 序 输 入 字 符 流 到 内 存, 使 用 的 方 法 是 read, 关 闭 字 符 输 入 流 使 用 方 法 close Constructor FileReader (String filename) FileReader (File filename) 17/105 Cont. FileWriter class( 字 符 输 出 流 类 ) 支 持 以 字 符 为 单 位 顺 序 的 将 字 符 流 输 出 到 文 件, 使 用 的 方 法 是 write 方 法, 关 闭 字 符 输 出 流 用 方 法 close Constructor FileWriter (String filename) FileWriter (File filename) 18/105

Cont. RandomAccessFile class( 随 机 访 问 类 ) 支 持 随 机 读 写 文 件 提 供 了 很 多 文 件 的 读 和 写 的 方 法, 例 如 : readline, writebytes 等 Constructor RandomAccessFile(String filename,string mode), 其 中 参 数 filename 是 文 件 名, 参 数 mode 可 能 的 形 式 是 r( 只 读 ) 或 rw( 可 读 写 ) RandomAccessFile(File filename,string mode), 其 中 参 数 filename 是 文 件 名, 参 数 mode 可 能 的 形 式 是 r( 只 读 ) 或 rw( 可 读 写 ) 19/105 Create a file and show some info 20/105

Read and write to sequence file 21/105 Read and write to Random-access access files RandomAccessFile 类 可 对 文 件 实 现 随 机 读 写 操 作, 即 可 以 随 机 地 读 取 一 个 文 件 中 指 定 位 置 的 记 录 和 写 记 录 到 文 件 指 定 的 位 置 为 方 便 随 机 读 写, 要 求 随 机 文 件 的 每 个 记 录 的 字 节 数 相 等 实 现 随 机 读 写 是 靠 随 机 文 件 流 的 位 置 指 针 定 位 的 RandomAccessFile 对 象 的 文 件 位 置 指 针 遵 循 下 面 的 规 则 : 新 建 RandomAccessFile 对 象 的 文 件 位 置 指 针 位 于 文 件 的 开 头 处 ; 每 次 读 写 操 作 之 后, 文 件 位 置 的 指 针 都 会 相 应 后 移 到 读 写 的 字 节 数 处 ; 可 以 通 过 getfilepointer 方 法 来 获 得 位 置 指 针 的 值, 通 过 seek 方 法 来 设 置 文 件 指 针 的 位 置 由 此 读 出 指 针 指 向 的 记 录 22/105

Example 7.5 将 若 干 个 学 生 的 信 息 存 入 到 文 本 文 件 students.txt 假 设 要 存 入 的 每 个 学 生 信 息 是 : 姓 名, 学 号, 每 一 个 学 生 的 信 息 是 一 个 记 录 然 后 按 规 定 的 顺 序 读 取 记 录 : 先 读 第 二 个 学 生 记 录, 再 读 第 一 个 学 生 记 录, 再 读 第 三 个 学 生 记 录 解 题 思 路 : 先 定 义 问 题 域 (PD) 类 Student; 然 后 编 写 一 个 主 动 类 ( 应 用 程 序 ), 能 随 机 读 写 学 生 记 录 23/105 (1) define Student class Student studentid name 24/105

(2) 编 写 一 个 能 随 机 读 写 3 个 学 生 的 记 录 的 程 序 TestRandomIO 先 创 建 3 个 Student 实 例, 然 后 写 学 生 记 录 到 文 件 student.txt, 再 随 机 读 入 注 意 每 个 记 录 的 长 度 应 相 等, 以 便 容 易 确 定 要 读 写 记 录 的 位 置 因 为 一 个 汉 字 两 个 字 节, 名 字 的 长 度 最 长 是 4 个 字, 8 个 字 节, 学 号 长 度 8 个 字 节 故 一 个 记 录 共 16 个 字 节 25/105 (3) TestRandomIO class 26/105

cont 27/105 cont 28/105

cont 29/105 Databases A database is a collection of data or information that is organized so that it can easily be accessed, managed, and updated. Databases management system (DBMS) Provide tools for organizing data into tables Such as MS SQL server, MS Access, Oracle 30/105

In a DBMS Table Relationship Databases Rows, columns Each column represents a field Each row represents a record Primary key: a field used to uniquely identify a record 31/105 Design Databases For example MS Access DB How to create, open and close a Database How to create data tables and close the data table How to modify data table Modify the design of a table add/delete a field How to input and modify data in a table. 32/105

Design Databases cont. Implementing the relationship between tables in DB 33/105 JDBC, ODBC, JdbcOdbcDriver Accessing a DBMS with Java, Need JDBC, ODBC and JdbcOdbcDriver JDBC (Java Database Connectivity) 它 是 一 个 应 用 程 序 接 口 (API), 通 过 它 可 访 问 各 种 关 系 数 据 库 JDBC 也 是 Java 核 心 类 库 的 一 部 分 JDBC 做 三 件 事 与 数 据 库 建 立 链 接 ; 发 送 SQL 语 句 ; 处 理 数 据 结 果 34/105

JDBC, ODBC, JdbcOdbcDriver cont. ODBC (Open Database Connectivity in a PC) provided by Microsoft ODBC 是 微 软 公 司 提 出 的 一 套 数 据 库 连 接 标 准, 它 和 JDBC 优 点 类 似, 主 要 是 为 了 设 置 数 据 库 连 接 接 口 的 统 一 ODBC can be used to access most databases (Microsoft SQL Server, Microsoft Access) 35/105 JDBC, ODBC, JdbcOdbcDriver cont. 应 用 程 序 要 访 问 一 个 数 据 库, 首 先 用 ODBC 管 理 器 为 数 据 库 注 册 一 个 数 据 源 名 字 (data source name) ODBC 管 理 器 根 据 数 据 源 提 供 的 数 据 库 位 置 ( 路 径 ) 数 据 库 类 型 及 ODBC 驱 动 程 序 等 信 息, 建 立 起 ODBC 与 具 体 数 据 库 的 联 系 只 要 应 用 程 序 将 数 据 源 的 名 称 (DSN) 提 供 给 ODBC,ODBC 就 能 建 立 起 与 相 应 数 据 库 的 连 接 How to create a DSN(data source name)? 36/105

JDBC, ODBC, JdbcOdbcDriver cont. JdbcOdbcDriver: a driver( 驱 动 程 序 ): 要 通 过 JDBC 访 问 ( 存 取 ) 某 一 特 定 的 数 据 库, 必 须 有 相 应 的 JDBC driver JDBC (Sun ), ODBC(MS) 不 同 公 司 的 产 品 JDBC --- JdbcOdbcDriver --- ODBC --- DB 37/105 Introduction to SQL Structured Query Language (SQL) A standardized language used to manage and query relational databases ( 在 MS Access 上 讲 解 各 语 句 的 执 行, 在 Design view 中 选 SQL view) 38/105

Introduction to SQL cont. Basic SQL statements query and modify tables and columns SELECT Statement - query tables and views in the database INSERT Statement - add rows to tables UPDATE Statement - modify columns in table rows DELETE Statement - remove rows from tables 39/105 SELECT Statement Queries data from tables in the database Basic format SELECT column-list FROM table [WHERE (logical expression )] Example SELECT address, phone FROM customer WHERE name= JoAnn SELECT * FROM customer WHERE name= JoAnn OR name= Mike order by phone SELECT * FROM customer 40/105

INSERT Statement Add one row to a table Format INSERT INTO table [(column-list)] VALUES (valuelist) Example INSERT INTO customer VALUES ( Judy, Beijing, 67891234 ) INSERT INTO customer (name, phone) VALUES ( Judy, 67891234 ) 41/105 UPDATE Statement Modify columns in selected table rows Format UPDATE table-1 SET set-list [WHERE predicate] SET column-1 = value-1 [, column-2 = value-2]... Example UPDATE customer SET address= Wuhan, phone= 87542234 WHERE name= Judy 42/105

DELETE Statement Removes selected rows from a table Format DELETE FROM table-1 [WHERE predicate] Example DELETE FROM customer WHERE name= Judy 43/105 Selected classes c in java.sql 44/105

下 面 举 例 说 明 以 上 各 类 的 使 用 编 写 一 个 TestJDBC 程 序, 查 询 数 据 库 phonebook 中 联 系 人 的 信 息 45/105 TestJDBC class 46/105

cont. 47/105 cont. 48/105

Data access Application programming model User < > GUI class < >PD class < >DA class< >DB 49/105 Designing a Data Access Class Purpose of a DA class To provide methods that store and retrieve data to files or database Reasons 1. Data input and output code are isolated from other classes Can dramatically reduce maintenance 2. Separate classes for each tier make deployment easier in a client-server environment GUI, PD, and DA functions may reside on multiple machines at various sites 例 : 买 卖 股 票 系 统 50/105

Designing a Data Access Class cont. A separate DA class is written for a PD class ( or one DA class for PD classes) DA methods are invoked only by the PD class A DA class diagram 51/105 Example Define a class User s DA class: UserDA Assume UserDA class attributes userid name password, Methods initialize,terminate,add,update, delete and find 52/105

cont Solution Steps: 1. define User class (see P178, 为 测 试 UserDA 所 使 用,) 2. [create Database and table usert (see P179, 为 测 试 UserDA 所 使 用 ) ] 3. define UserDA class 4. define NotFoundException class (used for UserDA) 5. define DuplicateException class (used for UserDA) 6. Code Tester class 53/105 Designing UserDA class userda class s methods addnew method: public static void add(user auser ) throws DuplicateException { } update method: public static void update(user auser ) throws NotFoundException { } delete method: public static void delete (User auser ) [ throws NotFoundException] { } find method: public static User find (String userid) throws NotFoundException { } 54/105

Designing UserDA class class cont. Additional methods Initialize: read data from a file or create a connection to DB public static void initialize(){ } Terminate: write data to a file or close the connection public static void terminate(){ } 55/105 Exception handler classes NotFoundException (used for finding data) public class NotFoundException extends Exception { } DuplicateException (used for add data) public class DuplicateException extends Exception { } 每 个 方 法 中 的 语 句 根 据 存 储 文 件 类 型 不 同 而 不 同 56/105

Implementing DA class with DB add method uses the SQL INSERT INTO statement to add a new user s record to the database update method uses SQL UPDATE statement to change the contents of one or more fields in a user s record 57/105 Implementing DA class with DB cont. Delete method executes the SQL DELETE statement DELETE statement specifies the key value of the customer to be deleted find method uses the SQL SELECT statement to Retrieve a specific user s record from the database 58/105

Example: Implementing UserDA class with DB DSN ( 数 据 源 名 字 ) 59/105 UserDA class Cont. 60/105

UserDA class Cont. 61/105 UserDA class Cont. 62/105

UserDA class Cont. 63/105 UserDA class Cont. 64/105

UserDA class Cont. 65/105 Defining DuplicateException class public class DuplicateException extends Exception{ //constructor public DuplicateException(String message){ super(message); } } 66/105

Defining NotFoundException class public class NotFoundException extends Exception{ //constructor public NotFoundException(String message){ super(message); } } 67/105 Testing interaction of UserDA class and DB Create two User s instance Test each method in UserDA 68/105

TesterUserDA class 69/105 cont 70/105

cont 71/105 cont 72/105

PD Class Communicate with a DA Class 从 类 图 来 看 两 者 没 有 区 别 73/105 Modifying PD class:user class User class ( is a PD class) methods in UserDA also includes these methods for invoking initialize Terminate find add update delete static methods instance methods 74/105

Modifying PD class:user class Adding methods that invoke UserDA methods 75/105 cont 没 有 参 数 代 表 user 实 例 76/105

Testing interaction about User class and UserDA 书 中 UserDA change to User 77/105 cont 78/105

cont 79/105 较 复 杂 的 数 据 库 访 问 的 实 现 --- 一 对 一 关 系 的 数 据 表 的 访 问 例 : 现 假 设 要 对 学 生 基 本 信 息 及 住 址 信 息 进 行 管 理, 如 对 这 些 信 息 添 加 修 改 删 除 和 查 询 解 题 思 路 : 首 先 找 出 问 题 域 类 画 出 类 图, 并 给 出 各 类 的 详 细 说 明 据 此 设 计 相 应 的 数 据 库 表 ; 然 后 再 定 义 PD classes 和 相 应 的 DA class; 最 后 编 写 测 试 程 序 ( 或 定 义 GUI 类 ) 80/105

(1)) 问 题 域 类 图 单 向 关 联 81/105 (2)) 创 建 数 据 库 及 数 据 表 82/105

(3)Define PD Class Student class (see P189) 5 attributes (including Address reference) 1 constructor 5 getters, 5 setters? 1 getdetails 3 static methods Initialize, terminate, find 3 instance methods add, update, delete 83/105 (3)Define PD Class cont. Address class (p190) 5 attributes (don t need Student reference?) 1 constructor 5 getters, 5 setters 1getDetails 84/105

(4)Define DA Class- StudentDA StudentDA class (p191) 4 attributes 6 methods 85/105 Defined StudentDA class 86/105

cont. 87/105 cont. 88/105

cont. 89/105 cont. 90/105

cont. If need to update the address of the student, how? 91/105 cont. 92/105

cont. public Student(String studentid,string name,string phone,string email, Address address) { setname( name) ; setstudentid(studentid); setphone( phone); setemail(email); setaddress(address); } 通 过 Student s constructor 中 setaddress() 完 成 关 联 93/105 P194-195 (5)Code Tester class 94/105

较 复 杂 的 数 据 库 访 问 的 实 现 --- 一 对 多 关 系 的 数 据 表 的 访 问 例 : 现 假 设 要 查 询 手 机 联 系 人 的 信 息, 包 括 姓 名 和 电 话 号 码 解 题 思 路 : 首 先 找 出 问 题 域 类 画 出 类 图, 并 给 出 各 类 的 详 细 说 明 据 此 设 计 相 应 的 数 据 库 表 ; 然 后 再 定 义 问 题 域 类 和 相 应 的 数 据 访 问 类 ; 最 后 编 写 测 试 程 序 95/105 (1)) 问 题 域 类 图 96/105

(2)) 创 建 数 据 库 及 数 据 表 97/105 (3)Define PD Class Contact class (session 5.5.3) Phone class 在 本 例 中 主 要 介 绍 ContactDA 类 中 find 方 法 和 getall 方 法 如 何 编 写 Declaring ContactDA class global variables 98/105

(4)Define ContactDA Class find method (p179) 控 制 重 复 数 据 只 显 示 一 次 99/105 Cont. (4)Define ContactDA Class 建 立 关 联 关 系 (see p127) 100/105

find() 控 制 流 程 如 下 101/105 (4)Define ContactDA Class getall method 102/105

Cont. getall method freqcontact, 103/105 Cont. 104/105

getall() 工 作 流 程 : 105/105 Summary Object persistence: storing instance data for future retrieval Persistence can be achieved by storing either attribute values or entire instances A data access (DA) class provides methods that store and retrieve data into tables Methods of a DA class are invoked only by the methods of the corresponding PD class Methods of a DA class: find, addnew, update, delete, getall, initialize, and terminate 106/105

Summary Java stream approach to I/O views data input and output as a flow of bytes Persistence can be achieved using sequential files, Random file, object serialization, or relational databases A relational database is used to organize data In a relational database, each column represents a field and each row represents a record SQL is a popular, standard language used to access relational databases 107/105 P200 9,10,11,12,17 第 3 个 实 验 Practices 108/105