JDBC课件

上传人:206****923 文档编号:51717355 上传时间:2018-08-16 格式:PPTX 页数:80 大小:1.05MB
返回 下载 相关 举报
JDBC课件_第1页
第1页 / 共80页
JDBC课件_第2页
第2页 / 共80页
JDBC课件_第3页
第3页 / 共80页
JDBC课件_第4页
第4页 / 共80页
JDBC课件_第5页
第5页 / 共80页
点击查看更多>>
资源描述

《JDBC课件》由会员分享,可在线阅读,更多相关《JDBC课件(80页珍藏版)》请在金锄头文库上搜索。

1、JDBCJDBCJDBCJDBC讲师:佟刚讲师:佟刚讲师:佟刚讲师:佟刚 新浪微博:尚硅谷新浪微博:尚硅谷新浪微博:尚硅谷新浪微博:尚硅谷- - - -佟刚佟刚佟刚佟刚数据持久化持久化(persistence):把数据保存到可掉电式存储设备中以供 之后使用。大多数情况下,特别是企业级应用,数据持久化 意味着将内存中的数据保存到硬盘上加以”固化”,而持久 化的实现过程大多通过各种关系数据库来完成。 持久化的主要应用是将内存中的数据存储在关系型数据库中 ,当然也可以存储在磁盘文件、XML数据文件中。 Java 中的数据存储技术 在Java中,数据库存取技术可分为如下几类: JDBC直接访问数据库

2、JDO技术 第三方O/R工具,如Hibernate, ibatis 等 JDBC是java访问数据库的基石,JDO, Hibernate 等只是更好的封装了JDBC。JDBC基础 JDBC(Java Database Connectivity)是一个独立于特定数据 库管理系统、通用的SQL数据库存取和操作的公共接口 (一组API),定义了用来访问数据库的标准Java类库, 使用这个类库可以以一种标准的方法、方便地访问数据 库资源 JDBC为访问不同的数据库提供了一种统一的途径,为开 发者屏蔽了一些细节问题。 JDBC的目标是使Java程序员使用JDBC可以连接任何提供 了JDBC驱动程序的数据

3、库系统,这样就使得程序员无需 对特定的数据库系统的特点有过多的了解,从而大大简 化和加快了开发过程。Java ApplicationMysqlOracleSQLServerDB2JDBCMysqlOracleSQLServerDB2Java Application调用实现一组规范:接口JDBCMysqlImplMysqlOracleSQLServerDB2Java Application调用可行,但不建 议,因为这意 味着 Java 应 用程序没有更 好的可移植性一组规范:接口JDBCJDBCOracleImplJDBCSQLServerI mplJDBCDB2mpl调用JDBC驱动JDBC体

4、系结构 JDBC接口(API)包括两个层次: 面向应用的API:Java API,抽象接口,供应用程序开发人员 使用(连接数据库,执行SQL语句,获得结果)。 面向数据库的API:Java Driver API,供开发商开发数据库驱 动程序用。JDBC驱动程序分类 JDBC驱动程序:各个数据库厂商根据JDBC的规范 制作的 JDBC 实现类的类库 JDBC驱动程序总共有四种类型: 第一类:JDBC-ODBC桥。 第二类:部分本地API部分Java的驱动程序。 第三类:JDBC网络纯Java驱动程序。 第四类:本地协议的纯 Java 驱动程序。 第三、四两类都是纯Java的驱动程序,因此,对于J

5、ava开发者 来说,它们在性能、可移植性、功能等方面都有优势。 ODBC早期对数据库的访问,都是调用数据库厂商提供的专有的 API。为了在 Windows 平台下提供统一的访问方式,微软推 出了 ODBC(Open Database Connectivity,开放式数据库连接) ,并提供了 ODBC API,使用者在程序中只需要调用 ODBC API,由 ODBC 驱动程序将调用转换成为对特定的数据库的 调用请求 一个基于ODBC的应用程序对数据库的操作不依赖任何 DBMS(database manager system),不直接与DBMS打交 道,所有的数据库操作由对应的DBMS的ODBC驱

6、动程序完 成。也就是说,不论是FoxPro、Access , MYSQL还是 Oracle数据库,均可用ODBC API进行访问。由此可见, ODBC的最大优点是能以统一的方式处理所有的数据库。JDBC-ODBC桥 JDBC-ODBC 桥本身也是一个驱动,利用这个驱动,可以使用 JDBC-API 通过ODBC 去访问数据库。这种机制实际上是把标准的 JDBC 调用转换成相应的 ODBC 调用,并通过 ODBC 访问数据库因为需要通过多层调用,所以利用 JDBC-ODBC 桥访问数据库的 效率较低 在 JDK 中,提供了 JDBC-ODBC 桥的实现类 (sun.jdbc.odbc.JdbcOd

7、bcDriver)Java 应用程序JDBC APIJDBC-ODBC桥ODBC API数据库ODBC层部分本地API部分Java的驱动程序 这种类型的 JDBC 驱动程序使用 Java 编写,它调用数 据库厂商提供的本地 API 通过这种类型的 JDBC 驱动程序访问数据库减少了 ODBC 的调用环节,提高了数据库访问的效率 在这种方式下需要在客户的机器上安装本地 JDBC 驱 动程序和特定厂商的本地 API Java 应用程序JDBC APIJDBC驱动程序厂商提供的 本地 API数据库JDBC网络纯Java驱动程序 这种驱动利用中间件的应用服务器来访问数据库。应用 服务器作为一个到多个数

8、据库的网关,客户端通过它可 以连接到不同的数据库服务器。 应用服务器通常有自己的网络协议,Java 用户程序通过 JDBC 驱动程序将 JDBC 调用发送给应用服务器,应用服 务器使用本地程序驱动访问数据库,从而完成请求。Java 应用程序JDBC APIJDBC驱动程序数据库应用服务器厂商提供的 本地 API本地协议的纯 Java 驱动程序 多数数据库厂商已经支持允许客户程序通过网络直接与 数据库通信的网络协议。 这种类型的驱动程序完全使用 Java 编写,通过与数据 库建立的 Socket 连接,采用具体与厂商的网络协议把 JDBC 调用转换为直接连接的网络调用Java 应用程序JDBC

9、APIJDBC驱动程序数据库JDBC API JDBC API 是一系列的接口,它使得应用程序能够进行 数据库联接,执行SQL语句,并且得到返回结果。Driver 接口 Java.sql.Driver 接口是所有 JDBC 驱动程序需要实现的接口。 这个接口是提供给数据库厂商使用的,不同数据库厂商提 供不同的实现 在程序中不需要直接去访问实现了 Driver 接口的类,而是 由驱动程序管理器类(java.sql.DriverManager)去调用这些 Driver实现加载与注册 JDBC 驱动 加载 JDBC 驱动需调用 Class 类的静态方法 forName(),向其 传递要加载的 JDB

10、C 驱动的类名 DriverManager 类是驱动程序管理器类,负责管理驱动程序 通常不用显式调用 DriverManager 类的 registerDriver() 方法 来注册驱动程序类的实例,因为 Driver 接口的驱动程序类都 包含了静态代码块,在这个静态代码块中,会调用 DriverManager.registerDriver() 方法来注册自身的一个实例建立连接 可以调用 DriverManager 类的 getConnection() 方法建立到 数据库的连接 JDBC URL 用于标识一个被注册的驱动程序,驱动程序管理 器通过这个 URL 选择正确的驱动程序,从而建立到数据

11、 库的连接。 JDBC URL的标准由三部分组成,各部分间用冒号分隔。 jdbc: 协议:JDBC URL中的协议总是jdbc 子协议:子协议用于标识一个数据库驱动程序 子名称:一种标识数据库的方法。子名称可以依不同的子协议而 变化,用子名称的目的是为了定位数据库提供足够的信息 几种常用数据库的JDBC URL 对于 Oracle 数据库连接,采用如下形式: jdbc:oracle:thin:localhost:1521:sid 对于 SQLServer 数据库连接,采用如下形式: jdbc:microsoft:sqlserver/localhost:1433; DatabaseName=si

12、d 对于 MYSQL 数据库连接,采用如下形式: jdbc:mysql:/localhost:3306/sidjdbc:mysql:/localhost:3306/test 协议子协议子名称访问数据库 数据库连接被用于向数据库服务器发送命令和 SQL 语句 ,在连接建立后,需要对数据库进行访问,执行 sql 语 句 在 java.sql 包中有 3 个接口分别定义了对数据库的调用 的不同方式: Statement PrepatedStatement CallableStatementStatement 通过调用 Connection 对象的 createStatement 方法创建该 对象 该

13、对象用于执行静态的 SQL 语句,并且返回执行结果 Statement 接口中定义了下列方法用于执行 SQL 语句: ResultSet excuteQuery(String sql) int excuteUpdate(String sql)ResultSet 通过调用 Statement 对象的 excuteQuery() 方法创建该 对象 ResultSet 对象以逻辑表格的形式封装了执行数据库操作 的结果集,ResultSet 接口由数据库厂商实现 ResultSet 对象维护了一个指向当前数据行的游标,初始 的时候,游标在第一行之前,可以通过 ResultSet 对象 的 next()

14、 方法移动到下一行 ResultSet 接口的常用方法: boolean next() getString() 初始状态: 指向第一条记录的前面 next(): 若返回true , 就向下移动一 行getInt(1)SELECT id, name, age, birth FROM customer_tablegetString(2)getInt(3)getDate(4)1. 数组: new Object4, “Mike”, 26, null 2.Customer: 一条记录对应一个对象 1.id 2.name 3.age 4.birth数据类型转换表java类型SQL类型booleanBITb

15、yteTINYINTshortSMALLINTintINTEGERlongBIGINTStringCHAR,VARCHAR,LONGVARCHARbyte arrayBINARY , VAR BINARYjava.sql.DateDATEjava.sql.TimeTIMEjava.sql.TimestampTIMESTAMPJDBC API 小结1 java.sql.DriverManager用来装载驱动程序,获取数据库 连接。 java.sql.Connection完成对某一指定数据库的联接 java.sql.Statement在一个给定的连接中作为SQL执行声 明的容器,他包含了两个重要的

16、子类型。 Java.sql.PreparedSatement 用于执行预编译的sql声明 Java.sql.CallableStatement用于执行数据库中存储过程的调用 java.sql.ResultSet对于给定声明取得结果的途径练习1字段名说明类型FlowID流水号IntType四级六级intIDCard身份证号码Varchar(18)ExamCard准考证号码Varchar(15)StudentName学生姓名Varchar(20)Location区域Varchar(20)Grade成绩Int1.创立数据库表 examstudent,表结构如下: 练习114412824195263214584200523164754000张锋郑州852422222419526321

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

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号