Lesson_11_jdbc jdbc课件

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Lesson11:数据库访问JDBC内容•JDBC技术概述•通过JDBC技术–与数据库建立连接–查询数据库–更新数据库–检索结果集–事务处理–了解数据库的信息-元数据–Datasource连接池•【参考书】《疯狂Java讲义》,第13章数据管理的两个阶段–文件管理•各种数据都是以文件为单位存储在外存,且由操作系统统一管理•文件相对独立,文件结构不能很好地反映现实世界中事物之间的联系,文件中存在大量的数据冗余–数据库管理•以数据为中心组织数据,减少冗余,并提供更高的数据共享能力,由数据库系统进行管理•程序和数据具有较高的独立性,当数据的逻辑结构改变时,不涉及数据的物理结构,也不影响应用程序,从而降低应用程序研制与维护的费用JDBC概述•JavaDatabaseConnectivity•将Java语言和SQL(StructuredQueryLanguage)结合的一个很好的编程接口。•通用的一般的SQL数据库访问和存储结构。•支持基本SQL功能的一个通用低层的应用程序编程接口,在不同的数据库功能模块上提供了一个统一的用户界面。•ODBC一样,建立在X/OpenSQLCLI基础之上。•是为Java语言定义的一个SQL调用级(CLI)界面。JDBC的特点1.在SQL水平上的API为Java语言定义的一个sql调用级界面,其中心在于执行基本的SQL声明和取回结果。在此基础上可以定义更高层次的API2.与SQL的一致性•JDBC允许使用从属于DBMS的系统的任何查询语句,一个应用程序可以尽可能的使用SQL功能。•用户至少使用ANSISQL92entrylevel标准3.可在现有的数据库接口之上实现•比如可以在ODBC之上实现JDBC的特点4.提供与其他Java系统一致的java界面5.简单易行,最大可能简单化6.使用健壮、静态的通用数据类型。7.使一般情形简单化8.多种方法、多种功能Jdbc的结构•Jdbc有两种接口,分别是面向开发人员的JDBCAPI和面向低层的JDBCDriverAPI,Java应用程序JDBCAPIJDBCManagerJDBCDrvierAPIJDBC-NetDriverJDBC-ODBCBridgeDriverODBCandDBDriverDriverADriverBPulblishedprotocolProprietaryDatabaseaccessprotocol。。。JDBC的结构•JDBCAPI是一系列的接口,他使得应用程序能够进行数据库联接,执行SQL语句,并且得到返回结果。JDBC访问数据库层次结构JDBC接口层JDBC驱动层J2EE应用JDBCAPI数据库JDBC驱动程序数据库程序员开发Sun数据库厂商应用层JDBCAPI•JDBCAPI实现了四个基本的功能:建立与数据的连接、执行SQL语句和处理执行结果、关闭数据库的连接。1.Driver接口2.DataSource接口3.DriverManager类4.Connection类5.Statement类6.PreparedStatement类7.CallableStatement类8.ResultSet类9.ResultSetMetaData类10.DatabaseMetaData类JDBC的结构•Java.sql.DriverManager用来装载驱动程序,并且为创建新的数据库联接提供支持。•Java.sql.Connection完成对某一指定数据库的联接•Java.sql.Statement在一个给定的连接中作为SQL执行声明的容器,他包含了两个重要的子类型。–Java.sql.PreparedSatement用于执行预编译的sql声明–Java.sql.CallableStatement用于执行数据库中存储过程的调用•Java.sql.ResultSet对于给定声明取得结果的途径JDBC编程基本步骤•导入必须的包•加载JDBC驱动•由DriverManager及数据源得到一个数据库连接对象•由数据库连接对象创建一个“Statement”对象•用此“Statement”对象进行查询操作•查询结果由“ResultSet”对象保存•关闭“ResultSet”对象•关闭“Statement”对象•关闭“Connection”对象JDBCDriverinterface•是面向驱动程序开发商的接口,每一个驱动程序都必须提供对于java.sql.Connection,java.sql.Statement,java.sql.PreparedStatement,java.sql.ResultSet等主要接口的实现方法。•Java.sql.DriverManager需要装载驱动程序时,每个驱动程序需要提供一个能实现java.sql.Driver接口的类。数据库应用模型应用程序驱动程序管理器驱动程序驱动程序驱动程序数据源数据源数据源ODBC的体系结构含有四个部件:应用程序(Application):执行ODBC函数的调用和处理,提交SQL语句并检索结果。驱动程序管理器(DriverManager):为应用程序装载驱动程序。驱动程序(Driver):驱动程序是实现ODBC函数调用和同数据源交互作用的动态连接库,它执行ODBC函数调用,提交SQL请求到指定的数据源,并把结果返回给应用程序。数据源(DataSource):由用户需要存取的数据和与之相连的操作系统、DBMS及存取DBMS的网络平台组成。ODBC是为了实现异构数据库互连而由Microsoft公司推出的一种标准,它是一个单一的通用的数据库编程接口。ODBC提供不同的程序以存取不同的数据库,但只提供一种应用编程接口(API)给应用程序。ODBCJDBC基础–关于ODBCJDBC数据库驱动程序数据库驱动有四种类型:Type1:JDBC-ODBCBridgeType2:JDBC-NativeAPIBridgeType3:JDBC-middlewareType4:PureJDBCdriverJDBC-ODBCBridge•桥接器驱动程序之一•特色是必须在使用者端的计算机上事先安装好ODBC驱动程序,然后通过JDBC-ODBC的调用方法,进而通过ODBC来存取数据库。•Application---JDBC-ODBCBridge----JDBC-ODBCLibrary---ODBCDriver--Database适用于快速的原型系统,没有提供JDBC驱动的数据库如AccessApplicationSpaceJavaApplicationJDBC–ODBCBridgeDatabaseSQLCommandResultSetODBCDriverProprietaryProtocolJDBC-ODBCBridge•由Sun的Java2JDK提供(sun.jdbc.odbc.JdbcOdbcDriver)–通过ODBC驱动程序来获得对数据库的JDBC访问–必须先安装ODBC驱动程序和配置ODBC数据源。–仅当特定的数据库系统没有相应的JDBC驱动程序时使用。JDBC-NativeAPIBridge•桥接器驱动程序之一•这类驱动程序也必须先在使用者计算机上先安装好特定的驱动程序(类似ODBC),然后通过JDBC-NativeAPI桥接器的转换,把JavaAPI调用转换成特定驱动程序的调用方法,进而存取数据库。•利用开发商提供的本地库直接与数据库通信。Application---JDBCDriver----NativeDatabaselibrary----Database比A类性能略好。ApplicationSpaceJavaApplicationType2JDBCDriverDatabaseSQLCommandResultSetNativeDatabaseLibraryProprietaryProtocolNative-API–partlyJavadriver–Native-APIdriver将JDBC命令转换为特定数据库系统的本地库方法。–与第一种相类似,必须先安装特定数据库的库方法(二进制代码,非Java)。JDBC-middleware•中间件服务器再将数据库系统无关的网络协议转换为特定数据库系统的协议,并发送给数据库系统。•从数据库系统获得的结果先发送给中间件服务器,并进而返回给应用程序。•Application---JdbcDriver-----javamiddleware---JDBCDriver----Database•具有最大的灵活性,通常由那些非数据库厂商提供。ApplicationSpaceJavaApplicationType3JDBCDriverDatabaseSQLCommandResultSetMiddlewareSpaceProprietaryProtocolJDBCDriverJDBC-middleware–pureJavadriver–将JDBC命令转换为与数据库系统无关的网络协议,并发送给一个中间件服务器。–好处:省去了在使用者计算机上安装任何驱动程序的麻烦,只需在服务器端安装好middleware,而middleware会负责所有存取数据库必要的转换。Native-protocol•纯Java的驱动程序,直接与特定的数据库系统通信。•直接将JDBC命令转换为数据库系统的本地协议。•Application---Jdbcdriver-----databaseengine---database•最高的性能,通过自己的本地协议直接与数据库引擎通信,具备在Internet装配的能力。•一般由数据库厂商提供ApplicationSpaceJavaApplicationType4JDBCDriverDatabaseSQLCommandUsingProprietaryProtocolResultSetUsingProprietaryProtocolNative-protocol–这类型的驱动程序是最成熟的JDBC驱动程序,不但无需在使用者计算机上安装任何额外的驱动程序,也不需要在服务器端安装任何中介程序(middleware),所有存取数据库的操作,都直接由驱动程序来完成。–优点:没有中间的转换或者是中间件。–通常用于提高数据库访问的性能。通过JDBC访问数据库建立连接–所有Jdbc程序的第一步都是与数据库建立连接,用户得到一个java.sql.Connection的对象–加载驱动程序,1.通过设置Java属性中的sql.driver来制定驱动程序列表。这个属性是一系列的用冒号隔开的Driver类的名称,按照顺序搜索驱动程序,使用第一个能成功和给定URL相连的驱动程序。2.使用Class.forName()显式加载驱动程序。例如Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”);加载了sun公司提供的jdbc-odbc桥驱动程序,由驱动程序负责向DriverManager登记,在数据库连接时,DriverManager将试图使用此驱动程序。与数据库的连接2.建立连接指定数据库连接的url,数据源的位置使用DriverManager.getConnection(url);例如:Stringurl=“jdbc:odbc:datasource”;Connectionconn=DriverManager.getConnection(url);或者:Connectionconn=DriverManager.getConnection(Stringurl,Stringuser,Stringpassword)…Driver接口…•当使用Class.forName(“com.acme.jdbc.AcmeJdbcDriver”),加载该驱动的实例时,静态的代码块将自动的注册该驱动的实例•当DriverManager试图建立某个数据库连接时,DriverManager调用驱动程序的connect()方法,并把数据库连接的URL传递给它。•JD

1 / 101
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功