《数据库的存取访问》PPT课件.ppt

上传人:w****2 文档编号:16567335 上传时间:2020-10-13 格式:PPT 页数:29 大小:312.34KB
返回 下载 相关 举报
《数据库的存取访问》PPT课件.ppt_第1页
第1页 / 共29页
《数据库的存取访问》PPT课件.ppt_第2页
第2页 / 共29页
《数据库的存取访问》PPT课件.ppt_第3页
第3页 / 共29页
点击查看更多>>
资源描述
第 28章 数据库的存取访问 大部分的实际应用程序中,都需要在一定的开发环境 下使用程序设计语言通过 SQL语句对数据库中的数据进行存 取操作。这就需要程序设计语言可以对数据库进行连接和访 问。本章将从数据库应用系统结构入手,介绍数据库应用系 统结构的 4种基本结构,然后介绍几种常用的数据库连接访 问技术,最后通过一种高级程序设计语言 Java与一个数据库 MySQL5.0的连接和开发的例子介绍如何使用程序设计语言 实现对数据库的连接和访问。 数据库应用系统结构; 数据库连接访问技术; Java与 MySQL5.0数据库连接与访问; Java与 MySQL5.0数据库开发。 28.1 数据库应用系统结构 一个数据库应用系统中,其系统结构一般包括界面显 示层、业务逻辑层和数据处理层 3个部分。其中,界面显示 层主要用于为用户操作提供可视化的界面,方便用户对数据 进行请求和处理;业务逻辑层主要用于处理与用户操作相关 的各种业务处理,通常由程序设计语言来完成 ;数据处理层 主要用于处理和维护各种数据信息,主要由数据库管理系统 来完成。目前的数据库应用系统中主要包括集中式数据库系 统、客户端 /服务器端、并行式数据库系统和分布式数据库 系统这 4种基本的数据库应用系统结构。 28.1.1 集中式数据库系统 集中式数据库系统( Centralized DBS)是指在单机上 运行的数据库管理系统。集中式数据库系统可以用于单个用 户,也可以用于多个用户。 在单个用户的集中式数据库系统中,界面显示层、业 务逻辑层和数据处理层 3个部分都在一台个人计算机上完成 ,这样的数据库管理系统也叫做桌面数据库管理系统。目前 常用的桌面数据库管理系统包括 Acess数据库和 VisualFoxPro数据库。单个用户的集中式数据库系统不支持 并发控制,在数据完全性、完整性和数据一致性等方面还有 很多不足。 28.1.1 集中式数据库系统 在多个用户的集中式数据库系统中,有多个计算机终 端通过一个数据链与主机服务器相连,可以为多个不同用户 提供服务。同时在多用户的 DBS中,利用操作系统提供的多 任务机制处理,可以用于单机分时系统的开发环境,允许并 发执行多个查询操作。 28.1.2 客户端 /服务器端数据库系统 客户端 /服务器端数据库系统( Client/Server DBS或者 C/S DBS)可以用于计算机网络环境,可以通过网络进行数 据访问。其中,每一个用户的个人计算机作为客户端,主机 作为服务器端,主机与客户机之间通过网络完成数据通信。 28.1.2 客户端 /服务器端数据库系统 基于 C/S两层结构 28.1.2 客户端 /服务器端数据库系统 基于 B/S结构 28.1.3 并行式数据库系统 并行式数据库系统( Parallel DBS)可以使用多个 CPU 和多个磁盘进行并行操作,从而提高数据处理和 I/O速度。 在有些应用中,数据库中数据量非常庞大,同时还要要求在 极短的时间内处理大量的事务,这样的环境下,集中式数据 库系统、客户端 /服务器端是无法胜任的。为了解决这样的 问题,就出现了并行式数据库系统。 并行式数据库系统一般用于要求数据量显著提高,事 务处理速度加快的场合。在并行式数据库系统中,不是采用 分时的方法执行操作,而是许多操作同时进行。并行式数据 库系统中的两个重要性能指标是吞吐量和响应时间。所谓吞 吐量就是指给定时间间隔内可以完成多少个任务,所谓响应 时间是指完成一个任务需要消耗的时间。 28.1.4 分布式数据库系统 分布式数据库系统( Distributed DBS)中数据的存储 分散在不同的地方,但是这些数据在逻辑上仍然是一个整体 ,如同一个集中式数据库。在分布式数据库系统,存储在各 个不同地方的数据库系统可以通过网络通信连接在一起。 在分布式数据库系统中,数据经网络的传输时间是影 响查询的主要因素,数据传输量是衡量查询时间的一个主要 指标。在数据在网络中传输时,可以考虑将不参与操作的值 或者无用的值不通过网络进行传输,通过这种方式可以优化 分布式数据库系统中的数据查询。 28.2 数据库连接访问 在实际应用中,一般使用高级程序设计语言来完成业 务逻辑的处理,使用数据库管理系统来完成数据的处理操作 。高级程序设计语言要想访问数据库就必须与数据库进行连 接。常用的连接访问方式包括 ODBC、 OLEDB、 ADO、 JDBC等。这一节就来介绍这几种常用的数据库连接访问方 式。 28.2.1 ODBC ODBC( Open Database Connectivity)开放式数据库 连接是微软公司开放服务结构 (WOSA, Windows Open Services Architecture)中有关数据库的一个组成部分,它提 供了一组对数据库访问的标准 API(应用程序编程接口)。 可以通过 ODBC驱动程序访问多种数据源,与数据库进行连 接。 ODBC 驱动程序是一些 DLL,在这些 DLL中提供了 ODBC和数据库之间的接口。数据源是一种对数据连接的抽 象,在数据源中包含了数据库位置和数据库类型等相关信息 。 ODBC本身也提供了对 SQL语言的支持,用户可以直接将 SQL语句送给 ODBC。 28.2.2 OLEDB OLEDB( Object Link and Embed)对象连接和嵌入是 一个基于 COM的数据存储对象,是一种开放式的标准,它 规定了数据使用者和提供者之间的一种应用层协议。 OLE DB中的对象主要包括数据源对象、阶段对象、命令对象和 行组对象。 OLE DB中主要有 3个对象,数据源对象、阶段对象、 命令对象和行组对象。使用 OLE DB的应用程序首先需要初 始化 OLE连接到数据源,然后发出命令并对结果进行处理, 最后释放数据源对象并停止初始化 OLE。 28.2.3 ADO 在 .NET Framework中 , 微软也提供了一个面向 Internet 的版本的 ADO,称为 ADO.NET。 ADO.NET提供了平台互 用性和可伸缩的数据访问,支持对数据的松耦合访问,增强 了对非连接编程模式的支持。 ADO.NET中主要包含的对象 包括 SqlConnection 对象、 Command对象、 sqlDataReader 对象、 DataSet对象、 SqlDataAdapter对象等。 SqlConnection 对象:用于数据库的连接,连接需要指 定时数据库服务器、数据库名字、用户名、密码等信息。 Command对象:执行 SQL语句并将发送 SQL语句到数 据库。在 Command对象中包含了数据库系统的访问信息。 sqlDataReader对象:取得从 command对象的 SELECT 语句中返回的结果,实现对数据的读取操作。 28.2.3 ADO DataSet对象:表示数据在内存中的表示形式。 DataSet 可以认为是一个数据容器。在 DataSet中可以包括多个 DataTable对象。 SqlDataAdapter对象:用于从数据库中获取数据,并 将其存储在 DataSet中。它也可以取得 DataSet中的更新数据 ,并将这些数据提交给数据库。 28.2.4 JDBC JDBCAPI中主要的类和接口包括 DriverManager类、 Driver接口、 Connection接口、 Statement接口、 DatabaseMetaData接口和 ResultSet接口等,这些类和接口 都在 java.sql包中。 28.2.4 JDBC DriverManager类:用来管理 JDBC驱动程序,主要用 于跟踪和加载驱动程序并负责选取数据库驱动程序和建立新 的数据库连接。 Driver接口:将 API的调用映射到数据库。每个驱动程 序类都必须实现该接口。 Connection接口:用来将应用程序与指定的数据库连接 在一起。 Statement接口:用来执行静态 SQL语句,并返回执行 后的结果。 28.2.4 JDBC DatabaseMetaData接口:返回与数据库和驱动程序等 底层数据库相关的信息。 ResultSet接口:提供对数据库表的访问,执行查询后 返回的结果集。 JDBC驱动器类型可以有以下 4种: JDBC-ODBC桥、本 地 API驱动、网络纯 Java类库驱动和本地 Java类库驱动。 JDBC-ODBC桥:它是将 JDBC转化为 ODBC驱动,再 利用 ODBC对 JDBC进行访问。通过使用 ODBC可以实现编 程语言与数据库进行交互的功能,这种驱动不是很常用。 28.2.4 JDBC 本地 API驱动:可以将用户的调用转化为对数据库客户 端相应 API的调用。使用这种驱动需要在本地安装一些相关 的代码。 网络纯 Java类库驱动:驱动程序与数据库服务器相互 独立,通过向一个与数据库无关的协议将数据库请求发送给 中间的某个服务器,再由该服务器实现对数据库的访问。与 具体的数据库无关。 本地 Java类库驱动:将用户的请求转换为对数据库的 协议请求,和数据库服务器直接进行通信。与具体的数据库 无关。 28.3 Java与 MySQL5.0数据库连接与访问 Java作为目前的主流面向对象的程序设计语言之一, 以其面向对象、跨平台、支持多线程和分布式等特点在 Web 应用程序开发、网络编程、手机游戏等各个方面都得到了广 泛的应用。这一节就来介绍如何使用 Java语言通过 JDBC来 实现对 MySQL5.0数据库的访问。 28.3.1 Java开发环境 在实现 Java与 MySQL5.0数据库连接与访问之前,首先 要安装 Java开发环境。 JDK( Java Development Kit)是一 切 Java应用程序的基础,所有的 Java应用程序都是构建在这 个基础之上的。它是由 Sun公司提供的免费的软件包,该包 中包括了 Java程序的编写和运行所需要的工具。 28.3.2 安装 Eclipse Eclipse是一个开源的基于 Java的免费的开发平台,是 一个可视化的开发环境。可以到其官方网站 http:/download.eclipse.org/eclipse/downloads/上下载 Eclipse 。 Eclipse的安装非常简单,只要将下载的 Eclipse压缩包解压 缩到指定路径下。直接双击其中的 eclipse.exe文件就可以运 行 Eclipse。 28.3.3 添加 MySQL5.0驱动程序 为了实现 Java与 MySQL 5.0数据库的连接,还需要将 MySQL5.0的 JDBC的驱动程序放到 classpath指向的目录下 。该驱动程序可以到 MySQL的官方网站上 JDBC的驱动程序 为 mysql-connector-java-5.0.5-bin.jar。 28.3.4 Java与数据库的连接过程 在完成了 Java开发环境的配置和 MySQL 5.0数据库驱动 程序的添加之后,就可以通过 Java语言实现与 MySQL5.0数 据库的连接了。 28.3.4 Java与数据库的连接过程 ( 1)使用 Class类加载当前数据源的驱动程序。 Class.forName(driver); 其中, driver表示数据库的驱动程序。 MySQL5.0数据 库驱动程序为 com.mysql.jdbc.Driver ( 2)通过 DriverManager类中的 getConnection方法 建立数据库的连接。 conn =DriverManager.getConnection(url, userName, password); 其中, url表示数据库的 URL, MySQL数据库的 URL为 jdbc:mysql:/HOST:PORT/database_name。 HOST 表示本机, PORT表示端口号, database_name表示数据 库的名字。 userName表示数据库使用的用户名, password表示使用该数据库的密码。 28.3.4 Java与数据库的连接过程 ( 3)使用 Connection接口中的 createStatement()方 法创建 Statement对象。 stmt =conn.createStatement(); 其中, stmt表示一个 Statement对象,通过该对象可 以执行相应的 SQL语句并将其发生给数据库。 ( 4)执行 SQL语句并将结果返回。执行的查询结果可 以以 ResultSet结果集的形式返回。 ResultSet rs = stmt.executeQuery(sqlSelect);/执行查询语句 Int count = stmt.executeUpdate(sqlUpdate); /执行更新语句 28.3.4 Java与数据库的连接过程 ( 5)使用一个 while循序获取 ResultSet结果集中的所 有记录。 while (rs.next() /获取查询结果 String str1= rs.getString(1);/获取结果集中第一个对应字段的值 String str2= rs.getString(2);/获取结果集中第二个对应字段的值 ( 6)关闭数据库的连接。在执行完数据库的操作之后 ,需要将与数据库连接有关的对象关闭。主要包括 Statement对象、 Connection对象等。 stmt.close(); conn.close(); 28.4 Java与 MySQL5.0数据库开发 在实际应用中,需要通过一种程序设计语言实现对数 据的存取操作。在 28.3节中已经了解了 Java开发环境以及 Java与数据库的连接过程, 28.3节通过实例介绍使用 Java程 序数据语言实现对 MySQL5.0数据库中数据的查询和更新操 作。 28.4.1 查询数据 在使用 Java与 MySQL5.0数据库开发之前,先看一个使 用 SQL语句执行查询操作的例子。例如,现在查询所有选修 了 t105这门课的学生的课程成绩,其查询的 SQL语句如下: SELECT R.stuID,S.stuName,C.curID, C.curName,R.result FROM T_result R,T_curriculum C,T_student S WHERE R.curID=C.curID AND R.stuID=S.stuID AND C.curID = t105 ORDER BY R.result 28.4.2 更新数据 在 Java中,更新数据库中的数据需要用到 executeUpdate()方法。 executeUpdate()方法用于执行给定 DML语句(例如, INSERT、 UPDATE和 DELETE)并返回 一个 int类型的整数。该方法需要接收一个参数,这个参数 是一个 DML语句的字符串,返回的整数表示插入数据的数 量。例如,现在要修改课程成绩表 T_result中的数据,将学 生编号为 s253263的学生 t105这门课的成绩修改为 60分。 UPDATE T_result SET result = 60 WHERE stuID = s253263 AND curID = t105 ;
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!