知识大全 Java,Beans 和 关系数据库 的 镜像

Posted 数据库

篇首语:无志山压头,有志人搬山。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Java,Beans 和 关系数据库 的 镜像相关的知识,希望对你有一定的参考价值。

Java,Beans 和 关系数据库 的 镜像  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  摘 要   JDK 包 括 了 新 的 数 据 库 存 取(JDBC) 及 组 件(JavaBeans) 的 应 用 程 序 接 口(APIs) 这 两 个API 结 合 在 一 起 可 用 来 开 发 通 用 数 据 库 代 码 通 过 用 唯 一 的 一 个 类 去 存 取 任 何 一 种JDBC 数 据 库( 封 装 于 不 同 组 件 中 的 各 个 应 用 程 序 有 著 其 具 体 的 编 码) 用 户 就 不 必 因 为 数 据 库 结 构 一 点 点 的 细 小 变 化 去 修 改 数 据 库 编 码      一 个 关 系 数 据 库 基 本 上 包 括 一 系 列 相 互 关 连 的 表 在 每 一 个 表 中 存 有 一 类 与 应 用 系 统 相 关 的 数 据 例 如 一 个 地 址 簿 数 据 库 中 可 能 有 关 于 人 员 住 址 电 话 号 码 等 方 面 的 表 在 数 据 库 中 每 一 个 这 样 的 实 体 将 被 作 为 一 系 列 的 字 符 串 整 数 及 其 它 原 始 数 据 类 型 存 贮 起 来 数 据 库 中 表 的 定 义 将 描 述 每 一 种 与 实 体 相 关 的 信 息 如 何 在 一 个 表 的 字 段 中 存 储 例 如 你 可 以 在 一 个 名 为 人 的 表 中 有 两 个 字 段 别 表 示 所 存 字 符 串 为 姓 和 名 每 一 张 表 应 当 有 一 个 或 几 个 字 段 值 作 为 标 识 确 保 每 条 记 录 的 唯 一 性 这 些 标 识 或 键 可 以 用 来 连 接 存 在 于 不 同 表 中 的 信 息 例 如 你 可 以 在 人 员 表 中 为 每 个 人 指 定 唯 一 的 人 员 号 码 的 键 值 并 在 地 址 表 中 的 相 应 字 段 中 使 用 同 一 个 键 值 这 样 你 可 以 通 过 对 两 个 表 中 的 人 员 号 码 字 段 值 的 匹 配 使 每 一 个 人 和 他 的 地 址 关 联 起 来        关 系 数 据 库 系 统 出 现 于 七 十 年 代 时 至 今 日 它 仍 然 是 存 储 巨 量 数 据 的 主 要 方 式 因 而 Java 软 件 工 具 有 必 要 具 备 处 理 关 系 数 据 库 的 能 力        关 系 数 据 库 要 想 被 某 个Java 应 用 程 序 利 用 首 先 需 要 解 决 两 个 问 题 第 一 需 要 某 些 基 础 的 中 间 件 来 建 立 与 数 据 库 的 连 接 向 数 据 库 发 出SQL 查 询 等 等 第 二 操 纵 数 据 库 的 处 理 结 果 要 与 操 纵 任 何 一 种Java 信 息 一 样 方 便 — — 作 为 一 个 对 象 前 一 个 问 题 已 被SUN 及 几 个 数 据 库 产 商 解 决 后 一 个 问 题 则 有 待 我 们 进 一 步 去 探 究        在 为 普 通 的 程 序 开 发 业 务 定 义 大 量 的APIs 这 项 工 作 上 SUN 一 直 保 持 著 与 许 多 软 件 公 司 的 合 作 关 系 在JDK APIs 中 JDBC 的API 是 最 早 建 立 起 来 的 而 且 它 已 得 到 了 为 数 众 多 的 应 用 这 些 应 用 中 有 的 是 % 的 纯Java 有 的 则 是Java 和 其 它 程 序 的 混 合 体 如 用 现 有 的ODBC 数 据 源 进 行 连 接( 参 看 图 ) JavaSoft 已 将 一 个 关 于 现 有 的JDBC 驱 动 程 序 的 介 绍 放 在 它 的Web 站 点 上()       图 一 个 典 型 的JDBC 或JDBC/ODBC 配 置    注 意 此 图 已 被 简 化 另 外 的 组 件 已 包 括 其 中( 如ODBD 驱 动 程 序)     非 常 明 显 这 些 应 用 的 优 缺 点 取 决 于 你 的 环 境 和 设 置 在 此 我 不 准 备 对 它 们 的 各 种 情 况 进 行 逐 一 论 述 在 下 面 的 内 容 中 我 们 假 定 在 你 的 机 器 中 已 拥 有 某 种Java 开 发 环 境 并 且 你 已 正 确 地 安 装 并 测 试 过 某 个JDBC 驱 动 程 序 或 者 运 用 过 某 种JDBC 驱 动 程 序 及SUN 的JDBC/ODBC 桥     JDBC API   JDBC API 作 为 一 个 单 独 的Java 包( 或 类 库 即java sql) 出 现 包 括 有 一 系 列 的 类 这 些 类 提 供 了 处 理 某 个 关 系 数 据 库 的 中 间 件 本 质 上 讲 它 们 使 得 你 可 以 关 联 某 个 数 据 库 并 向 其 发 出 查 询 你 可 以 对 这 些 查 询 结 果 进 行 处 理 检 索 你 数 据 库 的meta 信 息(meta information) 并 且 处 理 在 此 间 可 能 发 生 的 各 种 异 常 情 况      让 我 们 来 看 一 个 简 单 的JDBC 例 子 看 一 看 应 用 了Java JDBC 之 后 查 询 会 得 到 怎 样 的 简 化 表 是 一 个 极 其 简 单 的 数 据 库 在 清 单 中 的 编 码 是 一 段 最 简 单 的 对 关 系 数 据 库 进 行SQL 查 询 所 需 的Java 语 句      String ur = jdbc:odbc:sample ;   String query= SELECT * FROM PERSON ;   boolean more;   try      Class forName( sun jdbc odbc jdbcOdbcDriver );   Connection con = DriverManager getConnection(ur sandor guest );   Statement stmt = con createStatement();   ResultSet rs = stmt executeQuery(query);   While (more = rs next())        int number = rs getInt( PERSON# );     String firstName = rs getString( FIRST_NAME );     String lastName = rs getString( LAST_NAME );     System out printIn(number + + firstName + + lastName);      rs close();   stmt close();   con close();      catch(SQLException ex)      ex printStackTrace();       清 单 : 一 个 应 用 了JDBC 的SQL 查 询        这 段 编 码 的 含 义 是 先 装 入SUN 的JDBC/ODBC 驱 动 程 序 然 后 与 被jdbc:odbc:sample 指 定 的 数 据 库 建 立 起 一 个 关 联 最 后 对 该 数 据 库 进 行 一 个 简 单 的SELECT 查 询 如 果 没 有 遇 到 查 询 异 常(SQLException) 程 序 将 循 环 地 从 结 果 集(ResultSet) 中 每 次 抽 出 一 条 数 据 库 记 录 并 将 其 显 示 在 屏 幕 上        好 了 现 在 我 们 来 看 一 看 这 段 程 序 还 有 哪 些 不 足? 在 清 单 的 这 类 程 序 中 存 在 著 两 个 根 本 性 的 错 误        . 这 种 编 码 用 到 了 数 量 众 多 的 数 据 库meta 信 息 而 这 些 信 息 都 只 能 手 工 编 码 到 程 序 中 当 你 想 要 取 一 个 数 值 时 你 必 须 提 前 知 道 你 将 取 到 的 数 值 是 一 个 整 数 浮 点 数 还 是 一 个 双 精 度 数 这 将 会 使 得 编 写 一 个 可 以 处 理 任 何 一 个 数 据 库 的 类 变 得 十 分 困 难 并 且 每 一 个 数 据 库 的 细 小 调 整 都 会 逼 你 去 仔 细 地 检 查 和 修 改 程 序        . 数 据 库 中 的 信 息 总 是 作 为 一 个 单 个 的RecordSet( 记 录 集) 实 例 来 传 递 而 这 种 实 例 并 不 是 一 个 真 正 的 对 象 RecordSet 类 ( 与 其 它 的 数 据 库 类 封 装 没 什 么 差 别) 更 象 一 个 指 针 或 游 标 借 助 方 法 它 能 够 提 供 存 取 数 据 信 息 的 途 径 RecordSet 中 的 实 例 实 际 上 并 不 包 括 信 息 它 们 仅 仅 表 示 获 得 信 息 的 方 式 这 正 说 明 了 当 你 要 调 用 另 外 的RecordSet 方 法 去 获 取 某 些 真 实 的 数 据 信 息 的 时 候 你 必 须 通 过RecordSet 去 做 更 多 的 工 作( 利 用RecordSet NEXT() 去 移 动 指 针) 实 际 上 JDBC 类 的 确 仅 仅 传 递 这 类 联 系 松 散 的 字 段 即 使 你 完 全 了 解 数 据 库 的 所 有 内 部 细 节 这 也 没 有 任 何 价 值 因 为 在Java 提 供 了 存 储 和 处 理 信 息 的 方 法        所 以 理 想 的 状 态 是 有 一 种 好 的 方 法 能 够 逐 一 地 从 数 据 库 中 抽 取 记 录 或 字 段( 通 过RecordSet) 并 且 将 取 到 的 信 息 填 入 到 新 生 成 的 对 象 之 中        这 一 解 决 方 式 的 关 键 在 于 关 系 数 据 库(RDB) 和 面 向 对 象 的 数 据 模 型(ODB) 之 间 的 相 似 性 RDB 中 的 表 和ODB 中 的 类 的 作 用 很 相 似 而 记 录 和 对 象 也 有 著 某 些 相 同 的 属 性 你 可 以 将 记 录 看 作 是 用 来 初 始 化 某 个 对 象 的 数 据 元 素 的 数 据 组 如 果 你 已 将 记 录 从 数 据 库 中 抽 取 出 来 就 必 须 调 用 类 构 造 函 数 来 生 成 上 面 所 说 的 对 象 若 能 够 将 每 一 条 记 录 自 动 地 传 到 适 当 的 构 造 函 数 中 就 可 以 轻 而 易 举 地 由 记 录 来 构 造 对 象        在 开 发 一 个 小 的 应 用 程 序 时 有 可 能 将 每 一 个 记 录 传 递 给 某 个 构 造 函 数 以 此 来 生 成 新 的 对 象 你 可 以 经 常 利 用 对 象 参 照 来 操 纵 从 数 据 库 中 抽 取 的 任 何 数 据 因 为 你 通 过RecordSet 所 得 到 的 每 一 个 对 象 最 终 都 是java lang Object 的 扩 充 你 可 以 定 义 一 个BibClass 使 其 具 有 各 类 的 共 同 属 性 BigClass 类 操 作 将 利 用Java instanceof 算 子 来 实 时 决 定 运 行 中 所 遇 到 的 数 据 库 信 息 并 且 通 过 一 个 大 的switch 选 择 跳 到 相 应 的 程 序 段 中        你 也 可 以 定 义 一 个 相 似 的 带 有 多 个 构 造 函 数 的BigClass 每 个 构 造 函 数 有 差 别 不 太 大 的 cha138/Article/program/Java/hx/201311/26251

相关参考

知识大全 Oracle与SQLServer数据库镜像对比

Oracle与SQLServer数据库镜像对比  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  数

知识大全 C#完成Oracle数据库镜像与还原

C#完成Oracle数据库镜像与还原  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对操作系统进

知识大全 Microsoft SQL Server 2005数据库镜像语句

MicrosoftSQLServer2005数据库镜像语句  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 RedHat Linux 下实现MySQL 数据库镜像

RedHatLinux下实现MySQL数据库镜像  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Oracle数据库与SQL Server数据库镜像对比

Oracle数据库与SQLServer数据库镜像对比  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

知识大全 SQL Server 2008 数据库镜像部署实例之一 数据库准备

SQLServer2008数据库镜像部署实例之一数据库准备  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 java数据库设计中的14个技巧

  下述十四个技巧是许多人在大量的数据库分析与设计实践中逐步总结出来的对于这些经验的运用读者不能生帮硬套死记硬背而要消化理解实事求是灵活掌握并逐步做到在应用中发展在发展中应用原始单据与实体之间的关系 

知识大全 Java及数据库面试题 包含SSH,数据库和Java基础

Java及数据库面试题包含SSH,数据库和Java基础  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧

知识大全 Java项目中连接数据库的几种方式和范例

Java项目中连接数据库的几种方式和范例  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  最原始的

知识大全 数据库连接池java实现小结

  因为工作需要要使用到连接池所以拜读了互联网上众多前辈的文章学了不少经验这里想做一个小结加上自己的想法和在一起希望能给大家一些帮助    目的  消除数据库频繁连接带来的开销和瓶颈  解决方案  不