Java程序设计(7)-JDBC技术.ppt_第1页
Java程序设计(7)-JDBC技术.ppt_第2页
Java程序设计(7)-JDBC技术.ppt_第3页
Java程序设计(7)-JDBC技术.ppt_第4页
Java程序设计(7)-JDBC技术.ppt_第5页
已阅读5页,还剩20页未读, 继续免费阅读

下载本文档

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

文档简介

1、Java程序设计 JDBC技术,主讲教师:周立波,第13章 JDBC技术 13.1 JDBC概述 【什么是JDBC】 JDBC(Java Database Conectivity)是为Java程序中访问数据库而设计的一组Java API, JDBC中包括了一组由Java语言书写的接口和类,它们都是独立于特定的DBMS。JDBC是Java数据库应用开发中的一项核心技术。 有了JDBC,程序员可以方便地在Java语言中使用SQL语言,从而使Java应用程序或Java Applet可以实现对分布在网络上的各种关系数据库的访问. 使用了JDBC以后,程序员可以将精力集中于上层的功能实现,而不必关心底层

2、与具体的DBMS的连接和访问过程。,【JDBC的功能】 JDBC由一组Java语言编写的类和接口组成,使用内嵌式的SQL,主要实现三方面的功能:建立与数据库的连接、执行SQL声明以及处理SQL执行结果。 【JDBC的结构和特点】 目前基于JDBC的高层API主要是从关系数据库到Java类的直接映射。 在这种“对象/关系”映射中,数据库中表的每一行都将变成这一类的一个实例(对象),每一列的值对应实例的一个属性。 Java程序通过JDBC访问数据库的关系,Java应用程序,JDBC服务器,各种数据库,JDBC包含两部分与数据库独立的API:面向程序开发人员的JDBC API和面向底层的JDBC D

3、river API. 面向程序开发人员的JDBC API被描述成为抽象的Java接口,通过这些接口应用程序可以对某个数据库打开连接,执行SQL语句并且处理结果。 JDBC的体系结构示意图,Java数据库应用,标准SQL语句,JDBC API,JDBC驱动管理器,JDBC 驱动 API,特定数据库的驱动,特定数据库服务器,Database,JDBC的驱动管理器负责管理针对各种类型DBMS 的JDBC驱动程序。也负责和用户的应用程序交互, 为Java应用程序建立数据库连接。 Java应用程序通过JDBC API向JDBC驱动管理 器发出请求,指定要装载的JDBC驱动程序类型和数 据源。驱动管理器会

4、根据这些要求装载合适的JDBC 驱动程序并使该驱动连接相应的数据源。一旦连接成 功,该JDBC驱动程序就会负责Java应用与该数据源 的一切交互,即作为中间的翻译将Java应用中对 JDBC API的调用转换成特定DBMS能够理解的命令, 将数据库返回的结果转换成Java程序所能识别的数 据。,【JDBC驱动类型】 JDBC驱动有四种类型:JDBC-ODBC桥、本地API部分Java驱动、网络协议完全Java驱动、本地协议完全Java驱动。 1.JDBC-ODBC桥(JDBC-ODBC bridge) 这种驱动实际上是利用了现有的ODBC,将JDBC调用翻译为ODBC的调用。这种类型的驱动使J

5、ava应用可以访问所有支持ODBC的DBMS。 2.本地API部分Java驱动(native-API java driver) 这种驱动方式将数据库厂商的特殊协议转换成Java代码及二进制类码,使Java数据库方与数据库服务器通信。,【什么是ODBC】 ODBC(Open Database Connectivity,开放数据库互连)是微软公司开发的有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API。这些API利用SQL来完成其大部分任务。ODBC本身也提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC。 【不在Java应用程序中使用ODBC的原因】 O

6、DBC是一个C语言实现的API,从Java程序中调用本地的C程序会带来一系列类似安全性、健壮性的缺点。,3.网络协议完全Java驱动(net-protocol java driver) 这种驱动器将JDBC指令转化成独立于DBMS的网络协议形式,再由服务器转化为特定DBMS的协议形式。有关DBMS的协议由各数据库厂商决定。这种驱动器可以链接到不同的数据库上,最为灵活。 4.本地协议完全Java驱动(native-protocol fully driver) 这种驱动器将JDBC指令转化成网络协议后不再转换,而是由DBMS直接使用。相当于客户机直接与服务器相连写,对局域网适用。,在这四种驱动器中

7、,后两种“纯Java”的驱动器效率 更高,也更具有通用性。但目前第一、第二类驱动器 比较容易获得,使用也比较普遍。 【JDBC支持的数据库模型】 在与数据库的连接操作中,JDBC支持两种不同的 模型。这两种模型根据用户与数据库的关系层次不 同,分别成为两层模型和三层模型。 两层模型 两层模型中,Java的应用程序直接与数据库联系。 用户的SQL声名直接提交给数据库,执行的结果回送 给用户,这种模型具有客户机/服务器结构。,三层模型 在三层模型中,用户不直接与数据库联系。用户的命令首先发送给一个所谓“中间层”。中间层再将SQL声名发送给DBMS,执行的结果也同样由中间层转交。三层模型的好处是可以

8、通过中间层保持对存取权限和共有数据允许修改类型的控制,便于安全管理。同时,用户可以使用一种较为友善的高层API,由中间层转化为恰当的底层命令,保证较好地运行工效。 13.2 JDBC API 新发布的JDBC2.0的API有两个部分:Java.sql和Javax.sql,(1)java.sql是JDBC2.0的核心包,其中包括了JDBC 1.0规范中规定的API和新的核心API,这个包包含于Java2 Standard Edtion中。 (2)javax.sql是JDBC2.0的标准扩展包,相对于JDBC 1.0而言是全新的,这个包包含于Java2 Enterprise Edition中。 J

9、DBC2.0扩展了许多企业级应用程序特别需要的功能,提供了一些扩展API. 采用了新的方法连接数据库DataSource Interface JDBC2.0提供了新的接口DataSource用来实现数据库连接,可以替代1.0中提供的DriverManager.,Connection Pooling(连接缓冲池) 使用连接缓冲池后,当一个应用程序关闭一个连接时,这个连接并不真正释放而是被循环利用。因为建立连接是消耗较大的操作,循环利用可以显著地提高性能。 Distributed Transaction(分布式交换) 获得用户分布式交换的情形类似于获得缓冲池连接。差别仍然是DataSource对象

10、的实现方式,而不是获得连接程序代码的不同。 【JDBC API提供的基本功能】 1.建立一个数据源的连接。 2.向数据源发送查询和更新语句。 3.处理得到的结果。,【常用的JDBC API的核心类与接口】 (1)驱动管理 java.sql.Driver:提供数据库驱动程序信息,是每个数据库驱动器类都要实现的接口。 java.sql.DriverManager:提供管理一组JDBC驱动程序所需的基本服务。 java.sql.DriverProertyInfo:提供驱动程序与建立连接相关的特性。 (2)SQL语句 java.sql.Statement:包含了执行SQL语句的方法,用来执行SQL语句

11、并返回结果。 java.sql.PreparedStatement:表示与编译的SQL语句,该类对象可用来多次执行对应的SQL语句。,java.sql.CallableStatement:用来执行SQL的存储过程。 (3)数据库连接 java.sql.Connection:表示与特定数据库的连接。通过连接执行SQL语句并获得结果。 (4)数据 java.sql.ResultSet:表示数据库结果集的一个数据表,一般是在执行SQL查询语句时产生的。 (5)异常 java.sql.SQLException:表示数据库访问异常或其他异常,提供异常的相关信息。,【JDBC核心类和接口之间的关系】 通过

12、JVM中的驱动管理器,应用程序可以建立 与多个数据源的连接。每个连接上可建立多个语句 对象,包括Statement类型、CallableStatemetn和 PreparedStatement类型。通过这些语句对象可以 对数据库进行更新和查询操作,获取数据库中的元 数据和数据,并可以使用ResultSet的方法对返回的 数据进行操作。 【元数据】 在数据仓库领域中,元数据被定义为:描述数据及其环境的数据。,DriverManager,Connection,Connection,Connection,Statement,Statement,CallableStatement,PreparedSt

13、atement,executeUpdate(),executeQury(),getMoreResult(),execute (),Result,getResultSet(),元数据,数据,13.3 基于JDBC的数据库应用开发方法 13.3.1 JDBC应用开发的基本方法 利用JDBC开发数据库应用一般包括如下步骤: (1)建立与数据库的连接。 (2)执行SQL语句。 (3)处理结果集。 (4)关闭数据库连接。 1.建立与数据库的连接 数据库连接的建立包括两个步骤:首先要加载相 应数据库的JDBC驱动程序;然后建立连接。 (1)加载JDBC驱动程序,JDBC的驱动管理器查找相应的数据库驱动程序

14、并加载。加载的方式有两种:从系统属性java.sql中读取Driver的类名,并一一注册;或在程序中使用Class.forName()方法动态装载并注册数据库驱动. 【注意】 class.forName()方法的参数是以字符串形式表达的类长名,返回索创建的该类的对象。该方法可能抛出异常,因此在调用该方法时要注意进行异常处理。 (2)建立数据库连接 此步骤中要使数据库驱动连接到相应的DBMS。连接的建立通过使用DriverManager类的方法getConnection()。,getConnection( )方法的定义如下: public getConnection(String url ,St

15、ring user, String password) 参数说明: url:是数据库连接串,指定使用的数据库访问协议 以及数据源。其一般格式是: jdbc: jdbc协议。JDBC URL中的协议总是jdbc. 驱动程序名或数据库连接机制。 一种标识数据库的方法。使用子名称的目的是为定位数据库提供足够的信息。位于远程服务器上的数据库需要更多的信息。,通过Microsoft的JDBC驱动连接。此JDBC驱动共有三个文件,分别是mssqlserver.jar、msutil.jar和msbase.jar,可以到微软的网站去下载(,User和password分别是建立数据库连接所使用的数据库用户名和口

16、令。 2.执行SQL语句 在所建立的数据库连接上,创建Statement对 象,将各种SQL语句发送到所连接的数据库执行。 对于已创建的数据库连接对象,调用 reateStatement()方法,便可得到一个Statement对象。 接下来就可以通过该Statement对象发送SQL语句. 对于SQL的检索操作,使用Statement的ExecutQuery() 方法;对于更新操作,使用ExecuteUpdate()方法.,这两个方法的定义如下: public ResultSet executeQuery(String SQL) SQL:一般是SELECT语句。 public int executeUpdate(String SQL) SQL:执行指定的SQL语句,可能的语句包括SQL更新语句INSERT,UPDATE和DELETE,返回操作所影响的数据库元数组。 【注意】 参数SQL是以字符串形式表达的SQL语句。在Java中,字符串如果超过一行将出编译错误,所以在构造sql参数时,需要将多行表达的字符串的每一行加上双引号并将各行用加号连接。,3.处理结果集 结果集是保存SQL的SELECT语句返回的结果记 录的表,是ResultSet类的对象。 在结果集中通过游标(cursor)控制具体记录的 访问,游标指向结果集中的当前记录。使用ResultSet 类的next()

温馨提示

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

评论

0/150

提交评论