已阅读5页,还剩38页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第12章数据库应用程序开发,主编:刘志成,本章学习导航,本章学习导航,本章学习要点,(1)C/S结构和B/S结构;(2)常用的数据库访问技术;(3)使用JDBC-ODBC桥访问Oracle11g数据库;(4)使用JDBCDriver访问Oracle11g数据库;(5)C#.NET中使用ODBC方式访问Oracle11g数据库;(6)C#.NET中使用OLEDB方式访问Oracle11g数据库;(7)C#.NET中使用OracleClient方式访问Oracle11g数据库。建议课时:8课时,12.1数据库应用程序结构,概述,数据库应用程序是指任何可以添加、查看、修改和删除特定数据库(如Oracle中的eBuy)中数据的应用程序。数据库应用程序一般包括三大组成部分:一是为应用程序提供数据的后台数据库;二是实现与用户交互的前台界面;三是实现具体业务逻辑的组件。具体来说,数据库应用程序的结构可依其数据处理及存取方式分为主机-多终端结构、文件型结构、C/S(客户机/服务器)结构、B/S(浏览器/服务器)结构以及3层/多层结构等。,12.1数据库应用程序结构,客户机/服务器结构,客户机/服务器结构的出现是为了解决费用和性能的矛盾,最简单的C/S结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。(1)伸缩性差。(2)性能较差。(3)重用性差。(4)移植性差。,12.1数据库应用程序结构,浏览器/服务器结构,浏览器/服务器结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在B/S结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现。基于B/S结构的软件的系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行程序的全部功能,真正实现“零客户端”。B/S结构还提供了异种机、异种网和异种应用服务的开放性基础,这种结构已成为当今应用软件的首选体系结构。,12.1数据库应用程序结构,C/SVSB/S,1支撑环境C/S结构一般建立在专用的小范围内的局域网络环境,局域网之间通过专门服务器提供连接和数据交换服务;B/S结构建立在广域网之上的。2安全控制C/S结构一般面向相对固定的用户群,对信息安全的控制能力很强。B/S结构建立在广域网之上,面向不可知的用户群,对安全的控制能力较弱。3程序架构C/S结构可以对权限进行多层次校验,对系统运行速度较少考虑;B/S结构对安全以及访问速度的多重的考虑建立在需要更加优化的基础之上,比C/S结构有更高的要求,B/S结构的程序架构是发展的趋势。,12.1数据库应用程序结构,C/SVSB/S,4可重用性C/S结构侧重于程序的整体性,程序模块的重用性不是很好;B/S结构一般采用多层架构,使用相对独立的中间件实现相对独立的功能,能够很好地实现重用。5可维护性C/S结构处理出现的问题以及系统升级都比较难,一旦升级可能要求开发一个全新的系统;B/S程序由组件组成,通过更换个别的组件,可以实现系统的无缝升级,系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。6用户界面C/S结构大多是建立的Window平台上,表现方法有限,对程序员普遍要求较高;B/S结构建立在浏览器上,有更加丰富、生动的表现方式与用户交流,开发难度降低,开发成本下降。,12.1数据库应用程序结构,3层/N层结构,(1)用户界面层:实现用户界面,并保证用户界面的友好性、统一性。(2)业务逻辑层:实现数据库的存取及应用程序的商业逻辑计算。(3)数据服务层:实现数据定义、存储、备份和检索等功能,主要由数据库系统实现。,课堂案例1Java平台Oracle数据库程序开发,学习使用ODBC-JDBC桥访问Oracle数据库、使用JDBC驱动程序直接访问Oracle数据库、在Java程序中调用Oracle数据库中存储过程的方法和一般步骤。,案例学习目标,ODBC数据源的配置、部署ojdbc6_g.jar包、连接Oracle数据库、访问Oracle数据库、处理Oracle数据库数据、编写存储过程、编写Java程序、Java程序调用存储过程。,案例知识要点,课堂案例1Java平台Oracle数据库程序开发,JDBC概述,添加标题文字,JDBC(JavaDatabaseConnection)作为一种中间件,可以实现Java应用程序与数据库之间的接口功能。SunMicrosystems公司已将JDBC作为JDK的一部分,包括这些JDBCAPI,使Java应用与数据库通信。,教师演示讲解,课堂案例1Java平台Oracle数据库程序开发,案例完成步骤,添加标题文字,1注册数据库驱动程序(1)JDBC-ODBC桥接方式。Java应用程序访问Oracle数据库,我们可以通过配置数据源的方法来实现,即ODBC方式。配置Oracle数据源后,应用程序再使用JDBC提供的编程接口,通过数据源名称访问指定类型的数据库。JDBC使用驱动器管理器管理各种数据库驱动程序,应用程序使用统一的方式访问数据库。(2)JDBC直接连接方式。即使用JDBC直接连接数据源的方法。,教师演示讲解,课堂案例1Java平台Oracle数据库程序开发,案例完成步骤,添加标题文字,2获得数据库连接(1)JDBC-ODBC桥接方式。Stringurl=jdbc:odbc:MyData;Stringuser=SCOTT;Stringpassword=123456;Connectionconn=DriverManager.getConnection(url,user,password);(2)JDBC直接连接方式。conn=DriverManager.getConnection(jdbc:oracle:thin:SD04:1521:EBUY,SCOTT,123456);其中,SD04表示服务器名称,也可以使用IP地址代替,如;EBUY表示Oracle全局数据库名称;1521表示相应的连接端口。,教师演示讲解,课堂案例1Java平台Oracle数据库程序开发,案例完成步骤,添加标题文字,3发送和执行SQL语句(1)Statement接口。Statementstat=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);(2)PreparedStatement接口。PreparedStatement接口用于实现发送带参数的预编译SQL语句到数据库并返回执行结果的功能,预编译意味着这些语句可以比单个语句更有效地执行,尤其是在循环中重复执行某条语句时。(3)CallableStatement接口。CallableStatement接口用于实现调用数据库存储过程的功能。使用CallableStatement接口既支持直接存储过程调用,也支持带占位符的存储过程调用。,教师演示讲解,课堂案例1Java平台Oracle数据库程序开发,案例完成步骤,添加标题文字,4ODBC-JDBC桥访问实例【例12-1】使用ODBC方式查询Oracle数据库,并显示用户方案SCOTT中商品表GOODS的信息。,教师演示讲解,课堂案例1Java平台Oracle数据库程序开发,案例完成步骤,添加标题文字,4ODBC-JDBC桥访问实例【例12-1】使用ODBC方式查询Oracle数据库,并显示用户方案SCOTT中商品表GOODS的信息。,教师演示讲解,课堂案例1Java平台Oracle数据库程序开发,案例完成步骤,添加标题文字,基本步骤:(1)使用“importjava.sql.*;”引入JDBCAPI所在的包。(2)注册Oracle数据库驱动程序:Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);(3)获得和Oracle数据库的连接:Connectionconn=DriverManager.getConnection(jdbc:odbc:MyData,SCOTT,123456);(4)发送SQL请求:Statementstat=conn.createStatement();ResultSetrs=stat.executeQuery(sQuery);(5)操作结果集对象。(6)关闭相关对象。,教师演示讲解,课堂案例1Java平台Oracle数据库程序开发,案例完成步骤,添加标题文字,5JDBC直接访问实例【例12-2】使用JDBC方式查询Oracle数据库,并显示用户方案SCOTT的商品表GOODS中商品类别编号为“02”的商品信息。,教师演示讲解,课堂案例1Java平台Oracle数据库程序开发,案例完成步骤,添加标题文字,5JDBC直接访问实例【例12-2】使用JDBC方式查询Oracle数据库,并显示用户方案SCOTT的商品表GOODS中商品类别编号为“02”的商品信息。,教师演示讲解,课堂案例1Java平台Oracle数据库程序开发,案例完成步骤,添加标题文字,6Java程序调用Oracle存储过程【例12-3】编写Java程序,调用Oracle数据库中的存储过程up_GetByID,实现根据商品的编号获得商品的名称和类别编号。,教师演示讲解,课堂案例1Java平台Oracle数据库程序开发,案例完成步骤,添加标题文字,6Java程序调用Oracle存储过程【例12-3】编写Java程序,调用Oracle数据库中的存储过程up_GetByID,实现根据商品的编号获得商品的名称和类别编号。,教师演示讲解,课堂案例2.NET平台Oracle数据库程序开发,学习使用.NET平台连接Oracle数据库、访问Oracle数据库、处理Oracle数据库数据的方法。,案例学习目标,DataGridView控件绑定连接Oracle数据库、ODBC方式访问Oracle数据库、OLEDB方式访问Oracle数据库、OracleClient方式访问Oracle数据库、.NET平台调用Oracle存储过程。,案例知识要点,课堂案例2.NET平台Oracle数据库程序开发,ADO.NET概述,添加标题文字,ADO.NET提供对MicrosoftSQLServer等数据源以及通过OLEDB和XML公开的数据源的一致访问。ADO.NET是重要的应用程序接口,用于在Microsoft.NET平台中提供数据访问服务。ADO.NET中,可以使用的数据提供程序主要包括以下几种。(1)SQLServer.NETFramework数据提供程序;(2)OLEDB.NETFramework数据提供程序;(3)ODBC.NETFramework数据提供程序;(4)Oracle.NETFramework数据提供程序。,教师演示讲解,课堂案例2.NET平台Oracle数据库程序开发,ADO.NET结构,添加标题文字,教师演示讲解,ADO.NET针对Oracle也特别推出了以Oracle为前缀的系列类,用户需要在项目中引入System.Data.OracleClient.dll引用,并使用添加名称空间命令:usingSystem.Data.OracleClient;,课堂案例2.NET平台Oracle数据库程序开发,数据连接类,添加标题文字,教师演示讲解,(1)构造连接类对象。构造连接类对象的格式为:OleDbConnectionconn=newOleDbConnection(连接字符串);OracleConnectionconn=newOracleConnection(连接字符串);OdbcConnectionconn=newOdbcConnection(连接字符串);使用OLEDB方式访问Oracle数据库的连接字符串形如:Provider=OraOLEDB.Oracle;DataSource=EBUY;UserID=SCOTT;Password=123456使用OracleClient方式访问Oracle数据库的连接字符串形如:DataSource=EBUY;UserID=SCOTT;Password=123456使用ODBC方式访问Oracle数据库的连接字符串形如:DSN=MyData;UID=SCOTT;PWD=123456,课堂案例2.NET平台Oracle数据库程序开发,数据连接类,添加标题文字,教师演示讲解,(2)连接类的常用方法显式调用Open()方法打开连接,调用格式为:conn.Open();对数据库访问完毕后,需要显式调用Close()方法及时关闭数据库连接,调用格式为:conn.Close();但也有一个例外,当使用数据适配器类的Fill()方法或Update()方法操作数据库时,不需要显式调用Open()方法打开连接,ADO.NET会自动打开连接,操作完成后会自动关闭连接。(3)State属性。连接类的State属性标识连接对象的当前连接状态,当值为Open时,表示连接已经打开;当值为Closed时,表示连接已经关闭。可以通过对State属性的判别来识别当前的连接状态。,课堂案例2.NET平台Oracle数据库程序开发,命令类,添加标题文字,教师演示讲解,(1)构造命令类对象。构造命令类对象的格式如下:OleDbCommandcomm=newOleDbCommand(命令文本,连接对象);OracleCommandcomm=newOracleCommand(命令文本,连接对象);OdbcCommandcomm=newOdbcCommand(命令文本,连接对象);(2)命令类的常用方法。OleDbDataReaderdr=comm.ExecuteReader();OracleDataReaderdr=comm.ExecuteReader();OdbcDataReaderdr=comm.ExecuteReader();introws=comm.ExecuteNonQuery();,课堂案例2.NET平台Oracle数据库程序开发,命令类,添加标题文字,教师演示讲解,(3)Parameters属性。方式一:comm.Parameters.Add(参数名称,数据类型,长度).Value=值;方式二:OleDbParameterparam=newOleDbParameter(参数名称,数据类型,长度);/或OracleParameterparam=newOracleParameter(参数名称,数据类型,长度);/或OdbcParameterparam=newOdbcParameter(参数名称,数据类型,长度);comm.Parameters.Add(param);,课堂案例2.NET平台Oracle数据库程序开发,数据读取器类,添加标题文字,教师演示讲解,(1)填充数据行。数据读取器类用于从数据源中读取只进且只读的数据流。所有数据读取器类对象的基类均为DbDataReader类。填充数据读取器对象的格式如下所示:OleDbDataReaderdr=comm.ExecuteReader();OracleDataReaderdr=comm.ExecuteReader();OdbcDataReaderdr=comm.ExecuteReader();(2)数据读取器类的常用方法。数据读取器类的Read()方法使数据指针向前移动一条记录,返回类型为bool,如果返回值为false,则表示数据读取器中没有数据行。Read()方法通常用于循环读取数据表的数据记录。while(dr.Read()/依次处理每一条数据记录Close()方法用于关闭数据读取器对象,以释放其占有的资源。,课堂案例2.NET平台Oracle数据库程序开发,数据读取器类,添加标题文字,教师演示讲解,(3)数据读取器类的常用属性。数据读取器类的HasRow属性用于获取对象中是否包含了数据行,为bool类型;FieldCount属性用于获取当前数据行的列数;IsClosed属性指示当前数据读取器是否已经关闭。,课堂案例2.NET平台Oracle数据库程序开发,数据适配器类,添加标题文字,教师演示讲解,(1)构造数据适配器对象。构造数据适配器对象的格式如下:OleDbDataAdapterda=newOleDbDataAdapter(命令文本,连接对象);OracleDataAdapterda=newOracleDataAdapter(命令文本,连接对象);OdbcDataAdapterda=newOdbcDataAdapter(命令文本,连接对象);(2)数据适配器类的常用方法。数据适配器类的Fill()方法用于填充数据集,并返回填充的行数,其使用格式为:da.Fill(数据集对象,表名);Update()方法用于更新数据表,并返回受影响的行数,其使用格式为:da.Update(数据集,表名);,课堂案例2.NET平台Oracle数据库程序开发,数据适配器类,添加标题文字,教师演示讲解,(3)数据适配器类的常用属性。SelectCommand属性用于设置或获取SQL语句或存储过程,以从数据源中查询数据记录;InsertCommand属性用于设置或获取SQL语句或存储过程,以向数据源中插入数据记录;UpdateCommand属性用于设置或获取SQL语句或存储过程,以更新数据源中的数据记录;DeleteCommand属性用于设置或获取SQL语句或存储过程,以删除数据源中的数据记录。,课堂案例2.NET平台Oracle数据库程序开发,数据集类,添加标题文字,教师演示讲解,数据集类是ADO.NET中一种最常用的数据存储类,它的实例存储数据库中的信息在本地内存中的拷贝,可以修改这个本地拷贝,并通过数据适配器在数据集与数据库之间同步这些改变。数据集类DataSet位于System.Data名称空间,数据集对象可以表示数据表、行和列等数据结构,也可以表示XML数据。Tables属性是数据集类的常用属性,表示数据集中表的集合。一个数据集对象可以由若干个数据表对象组成,并通过索引运算。,课堂案例2.NET平台Oracle数据库程序开发,案例完成步骤,添加标题文字,DataGridView控件绑定Oracle数据库数据源详细步骤略,教师演示讲解,课堂案例2.NET平台Oracle数据库程序开发,案例完成步骤,添加标题文字,ODBC方式访问Oracle数据库【例12-4】使用ODBC方式访问Oracle数据库,并在控制台输出用户方案SCOTT中商品表GOODS的所有信息。,教师演示讲解,课堂案例2.NET平台Oracle数据库程序开发,案例完成步骤,添加标题文字,ODBC方式访问Oracle数据库【例12-4】使用ODBC方式访问Oracle数据库,并在控制台输出用户方案SCOTT中商品表GOODS的所有信息。,教师演示讲解,课堂案例2.NET平台Oracle数据库程序开发,案例完成步骤,添加标题文字,OLEDB方式访问Oracle数据库【例12-5】使用OLEDB方式访问Oracle数据库,并在控制台输出用户方案SCOTT商品表GOODS的所有信息。usingSystem.Data.OleDb;/引入OLEDB访问Oracle方式
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 微商城搭建合同范本
- 快递与淘宝合同范本
- 快递寄递安全协议书
- 快递装货协议书模板
- 怎样签定租车协议书
- 物流报价协议书范本
- 招聘服务费合同范本
- 招赞助商的协议合同
- 物料买卖合同协议书
- 急救业务承包协议书
- 健康养生讲座课件
- T/CIE 166-2023企业级固态硬盘测试规范第2部分:性能测试
- 净菜项目可行性研究报告
- 中国老年高血压管理指南(2023版)解读
- 《民法典》合同编实务培训课件
- 道德与法治初一上全册知识点(含思维导图)
- 微项目3《计算生成新的数据》教学设计-2024-2025学年泰山版(2019)初中信息技术第三册(八年级上)
- 2025年时事政治考试44题及参考答案
- 冬季猪舍保温与通风
- 【大学课件】风险导向的内部审计案例分析
- 2025年中移铁通广西分公司招聘笔试参考题库含答案解析
评论
0/150
提交评论