jdbc教程

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

JDBC的四种类型的驱动 Type 1: jdbc-odbc桥 Type 2: 本地API驱动 Type 3: 网络协议驱动 Type 4: 本地协议驱动
Type 1: jdbc-odbc桥连接
工作原理:
把JDBC API调用转换成ODBC API 调用, 然后ODBC API调用针对供 应商的ODBC 驱动程序来访问数据库, 即利用JDBC- ODBC 桥通过 ODBC来存储数据源 。 JDBC-ODBC应用模式 Java应用程序 DB
Type 3: 网络协议驱动
工作原理:
这种驱动实际上是根据我们熟悉的三层结构建立的,jdbc先把对数局库的访问 请求传递给网络上的中间件服务器, 中间件服务器再把请求翻译为符合数据库规 范的调用,再把这种调用传给数据库服务器.如果中间件服务器也是用java开发的, 那么在在中间层也可以使用第1或第2型 jdbc驱动程序作为访问数据库的方法。
JDBC API
JDBC-ODBC桥
ODBC API
ODBC 层
Type 2: 本地Api驱动
工作原理: 本地api驱动直接把jdbc调用转变为数据库的标准调用再去访问 数据库. 这种方法需要本地数据库驱动代码。
本地API驱动
厂商DB代码
DB Server
这种驱动比起jdbc-odbc桥执行效率大大提高了.但是,它仍然需 要在客户端加载数据库厂商 提供的代码库.这样就不适合基于 internet的应用.并且,他的执行效率比起3,4型的jdbc驱动还是不 够高.
什么是ODBC?
• ODBC(Open Database Connectivity,开放数据库 互连)是微 软公司开放服务结构(WOSA,Windows Open Services Architecture)中有关数据库 的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准API (应用程序编程接口)。这些API利用SQL来完成其大部分任务。ODBC本身也 提供了对SQL语言的支持,用户可以直接将SQL语句送给ODBC 一个基于ODBC的应用程序对数据库的操作不依赖任何DBMS,不直接与DBMS 打交道,所有的数据库操作由对应的DBMS的ODBC驱动程序完成。也就是说, 不论是FoxPro、Access , MYSQL还是Oracle数据库,均可用ODBC API进行访问。 由此可见,ODBC的最大优点是能以统一的方式处理所有的数据库。
网络协议驱动
数据库Server
中间件服务器
由于这种驱动是基于server的,所以它不需要在客户端加载数据库厂商提供的代 码库.而且 他在执行效率和可升级性方面是比较好的.因为大部分功能实现都在 server端,所以这种驱动 可以设计的很小,可以非常快速的加载到内存中. 但是,这 种驱动在中间件层仍然需要有配置 其它数据库驱动程序,并且由于多了一个中间 层传递数据,它的执行效率还不是最好.
Connection接口(1)
• Connection接口作用:一个Connection对象表示与特定的数据库的连接, 主要用于执行SQL语句并得到执行的结果。默认情况下,Connection对 象处于自动提交模式下,也就是说在执行每个SQL语句后都会自动提交。 • 注:如果禁用自动提交模式,为了提交更改就必须显示的调用commit() 方法,否则无法更改保存数据库更改。 • Connection常用的方法有如下一些:
教学内容
基本目标: 基本目标: 了解JDBC (Java Database Connectivity)相关概念 JDBC的四种类型的驱动 JDBC核心接口与类 JDBC体系结构图和开发步骤 JDBC 事务 进阶目标: 进阶目标: 并发控制(Concurrency Control) 事务的隔离级别 批处理(Batch)
API for Oracle ODBC C C++ Java JDBC API for SqlServer API for Mysql API for DB2
Oracle
SqlServer
Mysql
DB2
JDBC两端
统一接口 JDBC JDBC Java JDBC JDBC 不同的数 据库接口 Oracle SqlServer Mysql DB2
• • • • • • • •
了解JDBC基本概念 什么是JDBC? 什么是ODBC?
Why JDBC?
API for Oracle C C++ Java API for SqlServer API for Mysql API for DB2
Oracle
SqlServer
Mysql DB2
Why JDBC?
DriverManager类
• DriverManager类作用:通常用来注册了数据库驱动程序后获得一个数 据库连接对象。主要使用它的getConnection()方法。DriverManager 会 试着从初始化时加载的那些驱动程序以及使用与当前 applet 或应用程 序相同的类加载器显式加载的那些驱动程序中查找合适的驱动程序。 • getConnection()方法常用的有如下的形式: • Static Connection getConnection(String url)throw SQLException; • Static Connection getConnection(String url,String user,String password)throw SQLException; • Static Connection getConnection(String url,java.util.Properties info)throw SQLException; • 注:参数user是指连接数据库是使用的用户名;参数password是指连接 数据库时的用户user的登录密码;参数url是指连接数据库的URL,参数 info是作为连接参数的任意字符串标记/值对的列表,通常包括“user” 和“password”属性
JDBC
数据库连接纽带
1
© Copyright 2010 Hewlett-Packard Development Company, L.P.
参考
• Database programming with jdbc and java 2nd Edition • Jdbc4.0-fr-spec • 苏州软件jdbc资料
JDBC编程步骤
• • • • • • • • • • • • • • • • 1.Load the Driver Class.forName()|Class.forName().new Instance()|new DriverName() 实例化自动向DriverManager注册, 不需要显示的 调用DriverManager.registerDriver方法 2. Connect to the Database DriverManager.getConnection(url,username、password) 3. Execute the SQL Connection.createStatement() Statement.executeQuery() Statement.executeUpdate() 4. Retrieve the result date 循环取得结果while(rs.next()) 5. Show the result data 将数据库的各种类型转换成为Java中的类型(getxxx)方法 6. Close Close the resultset | close the Statement | close the Connection
Connecting to the Database
JDBC核心接口与类
• java.sql 包 • Javax.sql 包
Java.sql 包
• • • JDBC核心类库包含在java.sql包中。 以下是java.sql包中重要的接口与类: 接口: 接口 java.sql.Driver:每个驱动程序类必须实现的接口 。 java.sql.Connection:特定数据库的连接(会话)。在连接上下文中执行SQL 语句并返回结果。 java.sql.PreparedStatement:表示预编译的 SQL 语句的对象 。 java.sql.Statement:用于执行静态 SQL 语句并返回它所生成结果的对象。 java.sql.ResultSet :表示数据库结果集的数据表,通常通过执行查询数据库 的语句生成 。 java.sql.CallableStatement :用于执行 SQL 存储过程的接口 。 类: java.sql.DriverManager :负责管理JDBC驱动程序。使用JDBC驱动程序之前, 必须先将驱动程序加载并向DriverManager注册后才可以使用,同时提供方法来 建立与数据库的连接。
Type 4: 本地协议驱动
• 工作原理: • 这种驱动直接把jdbc调用转换为符合相关数据库系统规范的请求.由 于4型驱动写的应用可以直接和数据库服务器通讯,这种类型的驱动完 全由java实现,因此实现了平台独立Fra Baidu bibliotek。
• • 本地协议驱动 数据库Server • • 由于这种驱动不需要先把jdbc的调用传给odbc或本地数据库接口或者是 中间层服务器,所以它的执行效率是非常高的,而且,它根本不需要 在客户端或服务器端装载任何的软件或驱动,这种驱动程序可以动态 的被下载,但是对于不同的数据库需要下载不同的驱动程序。
JDBC接口详解: Driver接口
• Driver接口:
说明:每一个数据库驱动程序如果要实现与JDBC API的对接,就需要实现Driver接口,也 就是说每个驱动程序都应该提供一个实现Driver接口的类,DriverManager 会试着加载尽 可能多的它可以找到的驱动程序,然后,对于任何给定连接请求,它会让每个驱动程序 依次试着连接到目标 URL 。在加载某一 Driver 类时,它应该创建自己的实例并向 DriverManager 注册该实例。这意味着用户可以通过调用以下程序加载和注册一个驱动程 序。 • • • • • • • • • 可以通过以下程序来加载和注册一个驱动程序: Class.forName(“Driver类名”); 以下是加载各种不同数据库驱动程序的方法: //SQL Server 数据库 Class.forName(“com.microsoft.jdbc.sqlserver.SQLServerDriver”); //Mysql数据库 Class.forName(“com.mysql.jdbc.Driver”); //Oracle数据库 Class.forName(“Oracle.jdbc.driver.OracleDriver”);

接口关系图
The basic classes and interfaces of the JDBC API( 更清晰)
javax.sql 包
• javax.sql 包中重要的接口: javax.sql.DataSource javax.sql.RowSet
注意:javax.sql包中的类和接口最开始是作为JDBC 2.0可选包引入的

• 缺点:C API,复杂的设计,很难翻译成JAVA
什么是JDBC?
• JDBC是一种可用于执行SQL语句的Java API (ApplicationProgrammingInterface应用程序设计接口),它由一些Java 语言编写的类和接口组成。JDBC为数据库应用开发人员、数据库前台 工具开发人员提供了一种标准的应用程序设计接口,使开发人员可以 用纯Java语言编写完整的数据库应用程序。 • 通过使用JDBC,开发人员可以很方便地将SQL语句传送给几乎任何一种 数据库。也就是说,开发人员可以不必写一个程序访问Sybase,写另 一个程序访问Oracle,再写一个程序访问Microsoft的SQLServer。用JDBC 写的程序能够自动地将SQL语句传送给相应的数据库管理系统 (DBMS)。Java和JDBC的结合可以让开发人员在开发数据库应用时真 正实现“一次编写,处处运行”。
相关文档
最新文档