10 JDBC数据库编程.ppt
《10 JDBC数据库编程.ppt》由会员分享,可在线阅读,更多相关《10 JDBC数据库编程.ppt(54页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十章第十章JDBC数据库编程数据库编程210.1.1 JDBC 的概述的概述JDBC 是一种可以用来执行是一种可以用来执行SQL语句的底层语句的底层Java API,对于不同的数据库系统,在功能层次上提供了统一的访对于不同的数据库系统,在功能层次上提供了统一的访问方法。问方法。构成:由构成:由Java语言编写的接口和类组成语言编写的接口和类组成数据库访问功能:数据库访问功能:打开打开/关闭数据库连接关闭数据库连接与数据库通信与数据库通信执行执行 SQL 语句语句 检索查询结果检索查询结果3 JDBC提供连接各种常用数据库的能力,可以为多提供连接各种常用数据库的能力,可以为多种关系数据库提供统
2、一的访问接口。种关系数据库提供统一的访问接口。Java应用程序应用程序JDBCJDBCJSP/Servlet客户端客户端数据库服务器数据库服务器J2EE应用服应用服务器务器数据库服务器数据库服务器客户端客户端4ODBC(Open Database Connectivity)简介简介微软开发的在微软开发的在Windows平台数据库访问的平台数据库访问的C语语言的言的API,不适合,不适合Java中直接使用。中直接使用。ODBC 提供一个与提供一个与数据库数据库类型类型无关的前端应用无关的前端应用和后端数据库和后端数据库系统系统之间的接口之间的接口,通过配置数据源,通过配置数据源,允许用户访问来自
3、不同允许用户访问来自不同类型类型的数据库的数据库。5ODBC不适合在不适合在Java中直接使用:中直接使用:ODBC是一个是一个C语言实现的语言实现的API,从,从Java中调用本地的中调用本地的C程序在安程序在安全性、完整性、健壮性方面都有缺点。全性、完整性、健壮性方面都有缺点。无法精确实现从无法精确实现从ODBC API到到Java API的翻译的翻译(语言限制:指针支持,操作系统限制)。(语言限制:指针支持,操作系统限制)。为什么不直接使用为什么不直接使用ODBC?6JDBC的构成的构成(1)面向)面向Java程序员的程序员的JDBC API:通过调用通过调用JDBC API可实现连接数
4、据库、执行可实现连接数据库、执行SQL语句语句并返回结果集,是由并返回结果集,是由JDK定义的接口所构成:定义的接口所构成:java.sql.Driverjava.sql.Connectionjava.sql.Statementjava.sql.PreparedStatementjava.sql.CallableStatementjava.sql.ResultSet.7(2)面向数据库厂商的)面向数据库厂商的JDBC Driver(驱动):(驱动):数据库厂商必须提供相应的驱动并实现数据库厂商必须提供相应的驱动并实现JDBC API所要求的基本接口所要求的基本接口每个数据库驱动必须针对该数据库
5、提供对每个数据库驱动必须针对该数据库提供对Driver、Connection、Statement、ResultSet等接口的等接口的具体实现类,从而保证具体实现类,从而保证Java程序员通过调用程序员通过调用JDBC API实现对不同的数据库操作。实现对不同的数据库操作。8JDBC程序的结构程序的结构JDBC API提供:提供:JDK定义定义内容:供编程调用的接口,位于内容:供编程调用的接口,位于java.sql包中包中Driver Manager(DriverManager类)类)提供:提供:JDK实现实现作用:载入各种不同的作用:载入各种不同的JDBC驱动驱动JDBC 驱动驱动提供:数据库
6、厂商提供:数据库厂商内容:连接特定的数据库的内容:连接特定的数据库的JDBC API接口实现类接口实现类SqlSql ServerServerOracleOracleJDBC API JDBC Driver Manager JDBC 驱动驱动 JDBC 驱动驱动 Java 应用程序应用程序 9JDBC API、Driver Manager、JDBC 驱动驱动之间的关系之间的关系(1)JDBC API为为JDK定义的接口和类,具体功能定义的接口和类,具体功能实现在实现在JDBC驱动中;驱动中;如:如:JDBC API 定义了定义了Driver、ResultSet 等等接口,需要在接口,需要在JD
7、BC驱动的实现类中实现这些接口;驱动的实现类中实现这些接口;(2)对于不同的数据库,)对于不同的数据库,JDBC 驱动不同,驱动不同,Driver Manager用来管理用来管理JDBC 驱动,进行注册驱动。驱动,进行注册驱动。(3)应用程序调用的是)应用程序调用的是JDBC API,故从编程角度访,故从编程角度访问所有数据库可采用一致的方法。问所有数据库可采用一致的方法。10JDBC API可完成:与数据库建立连接、执行可完成:与数据库建立连接、执行SQL 语句、处理结果语句、处理结果ConnectionDriverManagerStatementResultSet DriverManage
8、r:依据数据库的不同,管理:依据数据库的不同,管理JDBC驱动驱动 Connection:负责连接数据库并担任传送数据的任务:负责连接数据库并担任传送数据的任务 Statement:由由 Connection 产生、负责执行产生、负责执行SQL语句语句 ResultSet:负责保存:负责保存Statement执行后所产生的查询结果执行后所产生的查询结果客户端客户端数据库服务器数据库服务器12341110.1.2 JDBC 驱动类型驱动类型JDBC驱动程序的类型驱动程序的类型JDBC-ODBC 桥驱动桥驱动本地协议纯本地协议纯 Java 驱动驱动JDBC 网络纯网络纯 Java 驱动驱动纯纯 J
9、ava 驱动驱动12JDBC-ODBC桥桥JDBC-ODBC桥桥Java 应用程序应用程序 JDBC APIODBC APIODBC层层DBDBServerServer将对将对JDBC API的调用,转换为对的调用,转换为对ODBC连接连接API的调用的调用优点:可以访问所有优点:可以访问所有ODBC可以访问的数据库可以访问的数据库缺点:执行效率低、功能不够强大缺点:执行效率低、功能不够强大一般在个人开发与测试中使用一般在个人开发与测试中使用13本地协议纯本地协议纯Java驱动驱动 利用数据库提供商的本地库来直接和数据库利用数据库提供商的本地库来直接和数据库通信,不同的数据库不同。通信,不同的
10、数据库不同。可移植性比较差,但效率最快。可移植性比较差,但效率最快。本地本地JDBC 驱动驱动 Java 应用程序应用程序 JDBC API DBDBServerServer本地本地API 14JDBC 网络纯网络纯 Java 驱动驱动 主要利用中间件提供数据连接池的服务,如主要利用中间件提供数据连接池的服务,如使用使用tomcat 连接池。连接池。Java 应用程序应用程序 JDBC API中间件中间件JDBC驱动驱动DBDBServerServer15纯纯 Java 驱动驱动JDBC 驱动驱动 Java 应用程序应用程序 JDBC API DBDBServerServer由由JDBC驱动直
11、接访问数据库驱动直接访问数据库优点:优点:100%Java,快又可跨平台,快又可跨平台缺点:访问不同的数据库需下载专用的缺点:访问不同的数据库需下载专用的JDBC驱动驱动1610.1.3 配置配置ODBC数据源数据源目的:目的:使用使用jdbc-odbc桥接驱动方式访问数据库桥接驱动方式访问数据库(access)1718选择数据选择数据库所在地库所在地路径路径1910.1.4 JDBC数据库编程步骤数据库编程步骤六步使用六步使用 JDBC:(1)加载)加载 JDBC Driver(2)获取与数据库)获取与数据库 Connection(3)创建)创建 Statement对象对象(4)执行)执行
12、SQL语句语句(5)处理)处理 ResultSet(针对查询语句针对查询语句)(6)关闭)关闭 Connection202110.1.4 JDBC数据库编程步骤数据库编程步骤(1)使用)使用jdbc-odbc桥的方式:桥的方式:首先创建首先创建odbc源源(操作如前所示操作如前所示)加载驱动:加载驱动:Class.forName(sun.jdbc.odbc.JdbcOdbcDriverClass.forName(sun.jdbc.odbc.JdbcOdbcDriver););Class.forName(xxx.xx.xx);作用:要求作用:要求JVM查找并加载指定的类,查找并加载指定的类,JV
13、M会会执行该类的静态代码段执行该类的静态代码段22JDBC规范中要求驱动的规范中要求驱动的Driver实现类必须向实现类必须向DriverManager 注册自己,即任何一个注册自己,即任何一个JDBC Driver的的Driver类的代码都必须类似如下:类的代码都必须类似如下:public class MyJDBCDriver implements Driver static DriverManager.registerDriver(new MyJDBCDriver();所以在使用所以在使用JDBC时需要时需要Class.forName(XXX.XXX);为什么调用为什么调用Class.fo
14、rName?2310.1.4 JDBC数据库编程步骤数据库编程步骤(2)建立连接建立连接 Connection Connection connconn=DriverManager.getConnection(urlDriverManager.getConnection(url,login_name,login_name,login_passwordlogin_password););对于对于Access:Connection conn=DriverManager.getConnection(“jdbc:odbc:testdb”,“”,“”);2410.1.4 JDBC数据库编程步骤数据库编程步
15、骤(1)使用纯)使用纯Java驱动方式:驱动方式:首先需要下载数据库的驱动,之后在首先需要下载数据库的驱动,之后在IDE中引入中引入驱动程序包(驱动程序包(jar文件)文件)加载驱动(加载驱动(SqlServer2000为例):为例):Class.forName(Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver););2510.1.4 JDBC数据库编程步骤数据库编程步骤(2)建立连接建立连接 Connection Connection connconn=DriverManager.getConnection(urlDrive
16、rManager.getConnection(url,login_name,login_name,login_passwordlogin_password););SqlServer2000为例:为例:Connection conn=DriverManager.getConnection(jdbc:microsoft:sqlserver:/localhost:1433;DatabaseName=sample,sa,sql);注意:注意:SqlServer2000需安装需安装SP4补丁,选择混合认证模式补丁,选择混合认证模式2610.1.4 JDBC数据库编程步骤数据库编程步骤(3)创建创建Sta
17、tement对象对象Statement 对象可将对象可将 SQL 语句发送到语句发送到 DBMS Statement stmt=conn.createStatement();27(4)使用)使用Statement 对象执行对象执行SQL语句语句int executeUpdate(String sql)用来执行用来执行INSERT、UPDATE 或或 DELETE语语句句;返回为整型数,表示对多少条记录产生了影响返回为整型数,表示对多少条记录产生了影响28ResultSet executeQuery(String sql)执行执行SELECT 语句语句 查询到数据返回为查询到数据返回为Resul
18、tSet类型类型boolean execute(String sql)用于执行任何用于执行任何 SQL 语句。语句。返回布尔值,有返回结果为返回布尔值,有返回结果为true,否则,否则false。29(5)处理)处理 ResultSetResultSet 包含包含 SQL 语句的执行结果语句的执行结果ResultSet对象具有指向其当前数据行的指针。最初,对象具有指向其当前数据行的指针。最初,指针被置于第一行之前。指针被置于第一行之前。指针移动方法:指针移动方法:boolean next()将指针从当前位置下移一行将指针从当前位置下移一行boolean previous()将指针从当前位置上移
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 10 JDBC数据库编程 JDBC 数据库 编程
限制150内