Java程序设计-JDBC技术.ppt

上传人:wuy****n92 文档编号:70795673 上传时间:2023-01-28 格式:PPT 页数:25 大小:345.97KB
返回 下载 相关 举报
Java程序设计-JDBC技术.ppt_第1页
第1页 / 共25页
Java程序设计-JDBC技术.ppt_第2页
第2页 / 共25页
点击查看更多>>
资源描述

《Java程序设计-JDBC技术.ppt》由会员分享,可在线阅读,更多相关《Java程序设计-JDBC技术.ppt(25页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Java程序设计程序设计JDBC技术技术主讲教师:周立波主讲教师:周立波第第13章章JDBC技术技术13.1JDBC概述概述【什么是【什么是JDBC】JDBC(JavaDatabaseConectivity)是为)是为Java程序中访问数据库而设计的一组程序中访问数据库而设计的一组JavaAPI,JDBC中包括了一组由中包括了一组由Java语言书写的接口和类,语言书写的接口和类,它们都是独立于特定的它们都是独立于特定的DBMS。JDBC是是Java数据数据库应用开发中的一项核心技术。库应用开发中的一项核心技术。有了有了JDBC,程序员可以方便地在,程序员可以方便地在Java语言中语言中使用使用

2、SQL语言,从而使语言,从而使Java应用程序或应用程序或JavaApplet可以实现对分布在网络上的各种关系数据库的访问可以实现对分布在网络上的各种关系数据库的访问.使用了使用了JDBC以后,程序员可以将精力集中于上以后,程序员可以将精力集中于上层的功能实现,而不必关心底层与具体的层的功能实现,而不必关心底层与具体的DBMS的的连接和访问过程。连接和访问过程。【JDBC的功能】的功能】JDBC由一组由一组Java语言编写的类和接口组成,使语言编写的类和接口组成,使用内嵌式的用内嵌式的SQL,主要实现三方面的功能:建立与数,主要实现三方面的功能:建立与数据库的连接、执行据库的连接、执行SQL声

3、明以及处理声明以及处理SQL执行结果。执行结果。【JDBC的结构和特点】的结构和特点】目前基于目前基于JDBC的高层的高层API主要是从关系数据库到主要是从关系数据库到Java类的直接映射。类的直接映射。在这种在这种“对象对象/关系关系”映射中,数据库中表的每一映射中,数据库中表的每一行都将变成这一类的一个实例(对象),每一列的值行都将变成这一类的一个实例(对象),每一列的值对应实例的一个属性。对应实例的一个属性。Java程序通过程序通过JDBC访问数据库的关系访问数据库的关系Java应用程序应用程序JDBC服务器服务器各种数据库各种数据库JDBC包含两部分与数据库独立的包含两部分与数据库独立

4、的API:面向程序:面向程序开发人员的开发人员的JDBCAPI和面向底层的和面向底层的JDBCDriverAPI.面向程序开发人员的面向程序开发人员的JDBCAPI被描述成为抽象被描述成为抽象的的Java接口,通过这些接口应用程序可以对某个数接口,通过这些接口应用程序可以对某个数据库打开连接,执行据库打开连接,执行SQL语句并且处理结果。语句并且处理结果。JDBC的体系结构示意图的体系结构示意图Java数据库应用数据库应用标准标准SQL语句语句JDBCAPIJDBC驱动管理器驱动管理器JDBC驱动驱动API特定数据库的驱动特定数据库的驱动特定数据库服务器特定数据库服务器DatabaseJDBC

5、的驱动管理器负责管理针对各种类型的驱动管理器负责管理针对各种类型DBMS的的JDBC驱动程序。也负责和用户的应用程序交互,驱动程序。也负责和用户的应用程序交互,为为Java应用程序建立数据库连接。应用程序建立数据库连接。Java应用程序通过应用程序通过JDBCAPI向向JDBC驱动管理驱动管理器发出请求,指定要装载的器发出请求,指定要装载的JDBC驱动程序类型和数驱动程序类型和数据源。驱动管理器会根据这些要求装载合适的据源。驱动管理器会根据这些要求装载合适的JDBC驱动程序并使该驱动连接相应的数据源。一旦连接成驱动程序并使该驱动连接相应的数据源。一旦连接成功,该功,该JDBC驱动程序就会负责驱

6、动程序就会负责Java应用与该数据源应用与该数据源的一切交互,即作为中间的翻译将的一切交互,即作为中间的翻译将Java应用中对应用中对JDBCAPI的调用转换成特定的调用转换成特定DBMS能够理解的命令,能够理解的命令,将数据库返回的结果转换成将数据库返回的结果转换成Java程序所能识别的数程序所能识别的数据。据。【JDBC驱动类型】驱动类型】JDBC驱动有四种类型:驱动有四种类型:JDBC-ODBC桥、本地桥、本地API部分部分Java驱动、网络协议完全驱动、网络协议完全Java驱动、本地驱动、本地协议完全协议完全Java驱动。驱动。1.JDBC-ODBC桥(桥(JDBC-ODBCbridg

7、e)这种驱动实际上是利用了现有的这种驱动实际上是利用了现有的ODBC,将,将JDBC调用翻译为调用翻译为ODBC的调用。这种类型的驱动使的调用。这种类型的驱动使Java应用可以访问所有支持应用可以访问所有支持ODBC的的DBMS。2.本地本地API部分部分Java驱动驱动(native-APIjavadriver)这种驱动方式将数据库厂商的特殊协议转换成这种驱动方式将数据库厂商的特殊协议转换成Java代码及二进制类码,使代码及二进制类码,使Java数据库方与数据库数据库方与数据库服务器通信。服务器通信。【什么是【什么是ODBC】ODBC(OpenDatabaseConnectivity,开放数

8、,开放数据库互连据库互连)是微软公司开发的有关数据库的一个组成部是微软公司开发的有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问分,它建立了一组规范,并提供了一组对数据库访问的标准的标准API。这些。这些API利用利用SQL来完成其大部分任务。来完成其大部分任务。ODBC本身也提供了对本身也提供了对SQL语言的支持,用户可以直语言的支持,用户可以直接将接将SQL语句送给语句送给ODBC。【不在【不在Java应用程序中使用应用程序中使用ODBC的原因】的原因】ODBC是一个是一个C语言实现的语言实现的API,从,从Java程序程序中调用本地的中调用本地的C程序会带来一系列类似

9、安全性、健程序会带来一系列类似安全性、健壮性的缺点。壮性的缺点。3.网络协议完全网络协议完全Java驱动驱动(net-protocoljavadriver)这种驱动器将这种驱动器将JDBC指令转化成独立于指令转化成独立于DBMS的的网络协议形式,再由服务器转化为特定网络协议形式,再由服务器转化为特定DBMS的协的协议形式。有关议形式。有关DBMS的协议由各数据库厂商决定。的协议由各数据库厂商决定。这种驱动器可以链接到不同的数据库上,最为灵活。这种驱动器可以链接到不同的数据库上,最为灵活。4.本地协议完全本地协议完全Java驱动驱动(native-protocolfullydriver)这种驱动

10、器将这种驱动器将JDBC指令转化成网络协议后不再指令转化成网络协议后不再转换,而是由转换,而是由DBMS直接使用。相当于客户机直接直接使用。相当于客户机直接与服务器相连写,对局域网适用。与服务器相连写,对局域网适用。在这四种驱动器中,后两种在这四种驱动器中,后两种“纯纯Java”的驱动器效的驱动器效率率更高,也更具有通用性。但目前第一、第二类驱动器更高,也更具有通用性。但目前第一、第二类驱动器比较容易获得,使用也比较普遍。比较容易获得,使用也比较普遍。【JDBC支持的数据库模型】支持的数据库模型】在与数据库的连接操作中,在与数据库的连接操作中,JDBC支持两种不同的支持两种不同的模型。这两种模

11、型根据用户与数据库的关系层次不模型。这两种模型根据用户与数据库的关系层次不同,分别成为两层模型和三层模型。同,分别成为两层模型和三层模型。两层模型两层模型两层模型中,两层模型中,Java的应用程序直接与数据库联系。的应用程序直接与数据库联系。用户的用户的SQL声名直接提交给数据库,执行的结果回送声名直接提交给数据库,执行的结果回送给用户,这种模型具有客户机给用户,这种模型具有客户机/服务器结构。服务器结构。三层模型三层模型在三层模型中,用户不直接与数据库联系。用在三层模型中,用户不直接与数据库联系。用户的命令首先发送给一个所谓户的命令首先发送给一个所谓“中间层中间层”。中间层。中间层再将再将S

12、QL声名发送给声名发送给DBMS,执行的结果也同样由,执行的结果也同样由中间层转交。三层模型的好处是可以通过中间层保中间层转交。三层模型的好处是可以通过中间层保持对存取权限和共有数据允许修改类型的控制,便持对存取权限和共有数据允许修改类型的控制,便于安全管理。同时,用户可以使用一种较为友善的于安全管理。同时,用户可以使用一种较为友善的高层高层API,由中间层转化为恰当的底层命令,保证较,由中间层转化为恰当的底层命令,保证较好地运行工效。好地运行工效。13.2JDBCAPI新发布的新发布的JDBC2.0的的API有两个部分:有两个部分:Java.sql和和Javax.sql(1)java.sql

13、是是JDBC2.0的核心包,其中包括了的核心包,其中包括了JDBC1.0规范中规定的规范中规定的API和新的核心和新的核心API,这个这个包包含于包包含于Java2StandardEdtion中。中。(2)javax.sql是是JDBC2.0的标准扩展包,相对于的标准扩展包,相对于JDBC1.0而言是全新的,这个包包含于而言是全新的,这个包包含于Java2EnterpriseEdition中。中。JDBC2.0扩展了许多企业级应用程序特别需要扩展了许多企业级应用程序特别需要的功能,提供了一些扩展的功能,提供了一些扩展API.采用了新的方法连接数据库采用了新的方法连接数据库DataSourceI

14、nterfaceJDBC2.0提供了新的接口提供了新的接口DataSource用来实现数用来实现数据库连接,可以替代据库连接,可以替代1.0中提供的中提供的DriverManager.ConnectionPooling(连接缓冲池连接缓冲池)使用连接缓冲池后,当一个应用程序关闭一个连使用连接缓冲池后,当一个应用程序关闭一个连接时,这个连接并不真正释放而是被循环利用。因接时,这个连接并不真正释放而是被循环利用。因为建立连接是消耗较大的操作,循环利用可以显著为建立连接是消耗较大的操作,循环利用可以显著地提高性能。地提高性能。DistributedTransaction(分布式交换)分布式交换)获得

15、用户分布式交换的情形类似于获得缓冲池连获得用户分布式交换的情形类似于获得缓冲池连接。差别仍然是接。差别仍然是DataSource对象的实现方式,而不对象的实现方式,而不是获得连接程序代码的不同。是获得连接程序代码的不同。【JDBCAPI提供的基本功能】提供的基本功能】1.建立一个数据源的连接。建立一个数据源的连接。2.向数据源发送查询和更新语句。向数据源发送查询和更新语句。3.处理得到的结果。处理得到的结果。【常用的【常用的JDBCAPI的核心类与接口】的核心类与接口】(1)驱动管理)驱动管理java.sql.Driver:提供数据库驱动程序信息,是每提供数据库驱动程序信息,是每个数据库驱动器

16、类都要实现的接口。个数据库驱动器类都要实现的接口。java.sql.DriverManager:提供管理一组提供管理一组JDBC驱动驱动程序所需的基本服务。程序所需的基本服务。java.sql.DriverProertyInfo:提供驱动程序与建立提供驱动程序与建立连接相关的特性。连接相关的特性。(2)SQL语句语句java.sql.Statement:包含了执行包含了执行SQL语句的方法,语句的方法,用来执行用来执行SQL语句并返回结果。语句并返回结果。java.sql.PreparedStatement:表示与编译的表示与编译的SQL语句,该类对象可用来多次执行对应的语句,该类对象可用来多

17、次执行对应的SQL语句。语句。java.sql.CallableStatement:用来执行用来执行SQL的存储的存储过程。过程。(3)数据库连接)数据库连接java.sql.Connection:表示与特定数据库的连接。表示与特定数据库的连接。通过连接执行通过连接执行SQL语句并获得结果。语句并获得结果。(4)数据)数据java.sql.ResultSet:表示数据库结果集的一个数据表示数据库结果集的一个数据表,一般是在执行表,一般是在执行SQL查询语句时产生的。查询语句时产生的。(5)异常)异常java.sql.SQLException:表示数据库访问异常或其表示数据库访问异常或其他异常,

18、提供异常的相关信息。他异常,提供异常的相关信息。【JDBC核心类和接口之间的关系】核心类和接口之间的关系】通过通过JVM中的驱动管理器,应用程序可以建立中的驱动管理器,应用程序可以建立与多个数据源的连接。每个连接上可建立多个语句与多个数据源的连接。每个连接上可建立多个语句对象,包括对象,包括Statement类型、类型、CallableStatemetn和和PreparedStatement类型。通过这些语句对象可以类型。通过这些语句对象可以对数据库进行更新和查询操作,获取数据库中的元对数据库进行更新和查询操作,获取数据库中的元数据和数据,并可以使用数据和数据,并可以使用ResultSet的方

19、法对返回的的方法对返回的数据进行操作。数据进行操作。【元数据】【元数据】在数据仓库领域中,元数据被定义为:在数据仓库领域中,元数据被定义为:描述数据及其环境的数据。描述数据及其环境的数据。DriverManagerConnectionConnectionConnectionStatementStatementCallableStatementPreparedStatementexecuteUpdate()executeQury()getMoreResult()execute()ResultgetResultSet()元数据元数据数据数据13.3基于基于JDBC的数据库应用开发方法的数据库应用开

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

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

22、库连接此步骤中要使数据库驱动连接到相应的此步骤中要使数据库驱动连接到相应的DBMS。连接的建立通过使用连接的建立通过使用DriverManager类的方法类的方法getConnection()。getConnection()方法的定义如下:方法的定义如下:publicgetConnection(Stringurl,Stringuser,Stringpassword)参数说明:参数说明:url:是数据库连接串,指定使用的数据库访问协议是数据库连接串,指定使用的数据库访问协议以及数据源。其一般格式是:以及数据源。其一般格式是:jdbc:jdbc协议。协议。JDBCURL中的协议总是中的协议总是jd

23、bc.驱动程序名或数据库连接机制。驱动程序名或数据库连接机制。一种标识数据库的方法。使用子名一种标识数据库的方法。使用子名称的目的是为定位数据库提供足够的信息。位于称的目的是为定位数据库提供足够的信息。位于远程服务器上的数据库需要更多的信息。远程服务器上的数据库需要更多的信息。n通过通过Microsoft的的JDBC驱动连接。此驱动连接。此JDBC驱动共驱动共有三个文件,分别是有三个文件,分别是mssqlserver.jar、msutil.jar和和msbase.jar,可以到微软的网站去下载(),如,可以到微软的网站去下载(),如果下载的是果下载的是setup.exe,还需要安装它,安装后会

24、,还需要安装它,安装后会生成上面的三个生成上面的三个jar文件。此文件。此JDBC驱动实现了驱动实现了JDBC2.0。n数据库连接数据库连接URL:jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=dbnamenUser和和password分别是建立数据库连接所使用的分别是建立数据库连接所使用的数据库用户名和口令。数据库用户名和口令。2.执行执行SQL语句语句在所建立的数据库连接上,创建在所建立的数据库连接上,创建Statement对对象,将各种象,将各种SQL语句发送到所连接的数据库执行。语句发送到所连接的数据库执行。对于已创建的数据

25、库连接对象,调用对于已创建的数据库连接对象,调用reateStatement()方法,便可得到一个方法,便可得到一个Statement对象。对象。接下来就可以通过该接下来就可以通过该Statement对象发送对象发送SQL语句语句.对于对于SQL的检索操作,使用的检索操作,使用Statement的的ExecutQuery()方法;对于更新操作,使用方法;对于更新操作,使用ExecuteUpdate()方法方法.这两个方法的定义如下:这两个方法的定义如下:npublicResultSetexecuteQuery(StringSQL)SQL:一般是一般是SELECT语句。语句。npublicint

26、executeUpdate(StringSQL)SQL:执行指定的执行指定的SQL语句,可能的语句包括语句,可能的语句包括SQL更新语句更新语句INSERT,UPDATE和和DELETE,返回操作所返回操作所影响的数据库元数组。影响的数据库元数组。n【注意】【注意】参数参数SQL是以字符串形式表达的是以字符串形式表达的SQL语句。在语句。在Java中,字符串如果超过一行将出编译错误,所中,字符串如果超过一行将出编译错误,所以在构造以在构造sql参数时,需要将多行表达的字符串的参数时,需要将多行表达的字符串的每一行加上双引号并将各行用加号连接。每一行加上双引号并将各行用加号连接。3.处理结果集处

27、理结果集结果集是保存结果集是保存SQL的的SELECT语句返回的结果记语句返回的结果记录的表,是录的表,是ResultSet类的对象。类的对象。在结果集中通过游标(在结果集中通过游标(cursor)控制具体记录的)控制具体记录的访问,游标指向结果集中的当前记录。使用访问,游标指向结果集中的当前记录。使用ResultSet类的类的next()方法将游标移到下一行,并将该行做为我方法将游标移到下一行,并将该行做为我们可以操作的当前行。如果当前行已经是结果集中们可以操作的当前行。如果当前行已经是结果集中的最后一行,则调用的最后一行,则调用next()方法将返回方法将返回false,否则,否则返回返回

28、true。在定位到结果集中的一行后,就可以执行数据的在定位到结果集中的一行后,就可以执行数据的读取。读取。n对于不同的对于不同的SQL数据类型要使用不同的读取方数据类型要使用不同的读取方法,以实现法,以实现SQL数据类型于数据类型于Java数据类型的转换。数据类型的转换。具体是根据具体是根据SQL数据类型的不同,使用相应的数据类型的不同,使用相应的getXXX()方法获取每个列的值。对于各种数据类型方法获取每个列的值。对于各种数据类型的数据获取方法的数据获取方法getXXX(),JDBC提供了两种形式:提供了两种形式:一种是以列名为参数。一种是以结果集中列的序号一种是以列名为参数。一种是以结果集中列的序号为参数,序号从为参数,序号从1开始递增。开始递增。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁