12JDBC数据库应用程序设计Java语言程序设计(陆迟编著).ppt_第1页
12JDBC数据库应用程序设计Java语言程序设计(陆迟编著).ppt_第2页
12JDBC数据库应用程序设计Java语言程序设计(陆迟编著).ppt_第3页
12JDBC数据库应用程序设计Java语言程序设计(陆迟编著).ppt_第4页
12JDBC数据库应用程序设计Java语言程序设计(陆迟编著).ppt_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第12章JDBC数据库应用程序设计,12.1 JDBC概述,JDBC(Java数据库连接,在中文中是Java数据库连接的意思),可以理解为数据库访问的综合技术。JDBC嵌入在Java中,为访问关系数据库提供了一个标准库。它由两部分组成:JDBC应用编程接口和JDBC驱动程序管理器。用户界面生成、事件驱动和数据库访问等功能都是用Java实现的。1.数据库概述数据库是指长期存储在计算机中的有组织的、可共享的数据集。有大量的数据库产品可以应用于实际的数据库管理和程序设计。例如甲骨文、SQL Server、DB2、SyBase、FoxPro、Access、MySQL等。其中,大量的数据库产品是基于严格

2、数学理论的关系数据库系统,数据之间的关系以二维表格(关系)的形式表达,用户使用起来直观简单。一般来说,二维表的行称为记录,列称为字段或域。数据库由几个表(即关系)组成,其中一些表可以表示数据,而另一些表可以表示数据之间的连接。例如,在“学生”数据库中有一个“学生成绩”表,其内容见表12-1:表12-1“学生成绩”数据表,2。JDBC连接模式在Java程序中,应该对数据库执行各种操作,并且可以使用JDBC技术来连接和访问数据库。这本书主要介绍了两种将JDBC连接到数据库的方法:使用JDBCODBC桥和直接使用某个数据库驱动程序。(1)通过使用微软公司定义的开放数据库连接的通用接口,使用ODBC桥

3、(Bridge)访问操作数据库。由于ODBC支持大多数数据库的连接和访问,JDBC通过JDBC桥将JDBC API转换为ODBC API,然后通过ODBC访问数据库。为了以这种方式连接和访问数据库,有必要在Windows系统中创建一个与数据库相对应的数据源。在Windows XP中,您可以选择“控制面板”中的“管理工具”和项目中的“数据源”,并将SQL Server 2000数据库中的数据库“学生”(在SQL Server中建立)设置为“数据源”。设置名为student的数据源后,请参见下图。(2)使用特定数据库的特殊驱动程序。通过这种方式,JDBC与某个数据库的特殊驱动程序相连接,并且无需创

4、建数据源就可以访问相应的数据库。对于SQL Server 2000,您可以从以下网页下载“JDBC SQL Server 2000驱动程序”:下载后,您将获得一个超过2MB的Setup.exe文件,运行该文件将安装驱动程序。lib子文件夹将在安装目标文件夹中创建,该文件夹包含三个jar文件:msbase、mssqlserver和msutil。根据系统手册的要求,这三个文件应该设置在类路径类的搜索路径中。3.JDBC连接数据库程序设计的主要步骤利用JDBC设计数据库应用程序需要使用更多的Java类和接口,掌握这些类和接口,并遵循一定的操作步骤,这样数据库才能被顺利访问,从而设计数据库应用程序。J

5、DBC的类和方法包含在java.sql包中,在java数据库应用程序的设计中需要引入java.sql包。下面根据数据库应用程序的设计步骤,从基本应用程序的角度描述与JDBC相关的类和接口。(1)加载驱动程序首先使用类类的forName方法来加载驱动程序。由加载驱动程序处理的异常。加载驱动程序的两种方法如下:使用ODBCJDBC桥的示例:try class . forname(sun . JDBC . odbc . JDBC odbc driver);catch(Java . lang . classnotfoundexception e)系统。out.println(找不到类错误!e);使用S

6、QL Server 2000驱动程序的示例:catch(Java . lang . classnotfoundexception e)系统。out.println(找不到类错误!e);(2)在定义了连接URL并指定了加载的数据库驱动程序之后,可以使用DriverManager类来连接数据源或数据库。司机经理课程是JDBC的基础,用于管理JDBC的司机。此类有一个静态getConnection()方法,用于验证JDBC数据源并返回接口连接对象。使用ODBCJDBC桥的示例:connection con=driver manager . getconnection(JDBC : ODBC :学生,

7、sa,123456);其中,学生是已建立的数据源的名称,sa和123456是安装SQL Server 2000数据库系统时设置的用户名和访问密码(可根据此处的实际用户名和密码进行设置)。使用SQL Server 2000驱动程序模式:connectioncon=驱动程序管理器。getconnection (JDBC :微软: SQL server :/本地主机:1433;数据库名=学生,sa,123456);本地主机是指使用本地服务器(可以根据实际名称填写),1433是服务器访问SQL数据库的默认端口号,学生是SQL Server 2000数据库的文件名,sa和123456的含义是安装SQL

8、Server 2000时设置的用户名和密码(可以根据实际情况填写)。(3)获取数据库信息和创建接口语句对象数据库连接成功后,可以使用连接对象的getMetaData方法获取接口数据库元数据对象(提供了大量的方法)来了解数据源或数据库的各种信息。例如:数据库元数据dbmd=con . getmetadata();/返回数据库元数据对象的dbmd . geturl()/获取数据库的dbmd.getusername()的URL获取用户名dbmd.getDriverName() /获取数据库驱动程序名称dbmd . GetDriversion()/获取数据库驱动程序版本dbmd . GetDataba

9、seProductName()/获取数据库产品名称dbmd . GetDatabaseProductVersion()/获取数据库中的数据表信息(带有方法参数)Dbmd.getColumns()/获取数据表中每一列的信息(带有方法参数)数据库连接成功后,您还可以通过发送SQL语句来访问数据库。JDBC使用接口语句的对象(或用于执行数据库存储过程的子接口调用语句,以及用于发送带参数的SQL语句的子接口准备语句)来发送SQL语句,并且可以通过连接的createStatement()方法返回语句对象。例如:语句ST=con . create statement();(4)执行SQL语句访问数据库。要

10、执行的SQL语句字符串作为语句方法execute()等的参数传输到数据库。以便交给数据库引擎对数据库执行SQL访问操作。当数据库访问的结果是数据表时,该表(结果集)可以存储在接口结果集的对象中。提交SQL语句的方法包括执行、执行查询和执行更新,用于提交不同类型的SQL语句。executeQuery方法用于生成单个结果集的语句,如查询语句select。ExecuteUpdate方法用于执行不产生结果集的SQL语句,如插入、删除、更新语句和数据定义语句(其返回值为整数值或零,表示此操作影响数据库表中的数据行数)。execute方法可用于执行生成多个结果集的SQL语句或对数据库执行多个操作(例如,执

11、行数据库的存储过程)。以下是使用执行查询方法和执行更新方法的示例:结果集RS=St. executequery(从学生成绩中选择*)。Int n=ST. executeupdate(从综合60处的学生成绩中删除);(5)处理执行SQL语句的结果语句对象封装SQL语句并将其提供给数据库引擎,然后执行选择查询语句,这将获得结果集结果集对象(注意:在执行插入、删除和更新等查询语句时没有结果集)。接口结果集对象封装了执行SQL语句返回的结果,这些结果可以显示在屏幕上,也可以根据需要在以后进一步处理。执行select语句后返回的结果包含数据表和数据表内容的相关信息。有关数据表的信息,可以通过结果集的ge

12、tMetaData方法创建结果集元数据对象,并且可以通过该对象获得所需数据库的信息。,例如:resultset metadata rsmd=RS . getmetadata();Rsmd.getColumnCount() /获取列(字段)数rsmd.getColumnName(列号)/获取指定列(字段)的列名。在结果集中,一整套getXXX方法(如getInt、getString、getFloat、GetDouble等)。)来访问结果集中当前行的不同列的数据(使用列序列号或列标题作为这些方法的参数)(当类型不同时,可以根据XXX类型转换字段类型),而下一个方法可以访问不同的行。例如,您可以通过

13、以下程序段访问学生成绩单的姓名和出生日期:resultset rs=st. executequery(从学生成绩中选择姓名、出生日期);而(rs.next()系统。out . println(RS . getString(name)/使用字段(列)名称rs.getString(2)。子串(0,10);/使用字段(列)序列号,/并将日期类型字段转换为字符串类型以供显示。结果集自动保持结果集当前数据行的指针。当首先获得结果集时,将指向光标放在结果集的第一行前面,然后每次调用下一个方法时,光标向下移动一行,以便可以从第一行到最后一行按顺序逐行访问结果集的每一行(当访问完成时,next返回一个fals

14、e值)。在某些情况下,您可能希望任意访问结果集的数据行,而不是按顺序访问。对于某些结果集,您可能还想通过结果集修改数据库的数据。应在createStatement方法中添加以下两个参数:语句ST=con . CreateStatement(resultset . type _ scroll _ sensitive,resultset.concur _ updatable,如果您只想任意滚动结果集的光标而不修改数据库的数据,可以将第二个参数设置为result set。CONCUR_READ_ONLY。通过设置参数,您可以通过结果集的第一个、最后一个、前一个、绝对和相对方法设置当前行,还可以通过插

15、入行并根据参数的更新行设置删除行来删除行,(6)关闭连接数据库访问结束。为了确保数据库数据的完整性并释放系统资源,数据库连接应该显式关闭:通常,结果集、数据库访问对象和连接应该关闭。12.2 JDBC数据库操作示例,示例12.1使用表12-1中的数据在数据库“学生”中创建一个数据表“学生成绩”,并在创建该表后显示结果。在程序中,给出了通过JDBC-ODBC桥连接数据库的代码,通过注释给出了通过直接驱动程序连接数据库的代码。(使用直接驱动模式时,删除该语句的注释符号,并删除或设置带“*”注释的语句作为注释。)导入Java . SQL . *;类JdbcDemo公共静态无效主(字符串参数)连接co

16、n/定义连接类的对象,语句ST;/定义用于SQL语句的对象结果集;/定义结果集对象String用户=sa,pass=123456/设置数据库try class . forname(sun . JDBC . odbc . JDBC odbc driver)的用户名和密码;/*驱动程序名称/class . forname(/com . Microsoft . JDBC . SQL server . SQL server driver);Catch (classnotfoundexception e)系统。out.println(找不到类错误!e);try con=DriverManager . GetConnection(JDBC : odbc :

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论