Java网络编程精解讲义12

上传人:飞*** 文档编号:46157448 上传时间:2018-06-23 格式:PPT 页数:90 大小:1.04MB
返回 下载 相关 举报
Java网络编程精解讲义12_第1页
第1页 / 共90页
Java网络编程精解讲义12_第2页
第2页 / 共90页
Java网络编程精解讲义12_第3页
第3页 / 共90页
Java网络编程精解讲义12_第4页
第4页 / 共90页
Java网络编程精解讲义12_第5页
第5页 / 共90页
点击查看更多>>
资源描述

《Java网络编程精解讲义12》由会员分享,可在线阅读,更多相关《Java网络编程精解讲义12(90页珍藏版)》请在金锄头文库上搜索。

1、Java网络编程精解作者:孙卫琴作者:孙卫琴 参考书籍:参考书籍: 技术支持网址:技术支持网址:www.javathinker.orgwww.javathinker.org第12章 通过JDBC API访问数据库参考Java网络编程精解的第12章n12.1 JDBC的实现原理n12.2 安装和配置MySQL数据库n12.3 JDBC API简介n12.4 JDBC API的基本用法n12.5 可滚动以及可更新的结果集n12.6 行集n12.7 调用存储过程n12.8 处理Blob和Clob类型数据n12.9 控制事务n12.10 数据库连接池第12章 通过JDBC API访问数据库nJDK提供

2、了JDBC API。JDBC是Java DataBase Connectivity的缩写。nJDBC的实现封装了与各种数据库服务器 通信的细节。Java程序通过JDBC API来 访问数据库,有以下优点:n(1)简化访问数据库的程序代码,无需涉 及与数据库服务器通信的细节。n(2)不依赖于任何数据库平台。同一个 Java程序可以访问多种数据库服务器。第12章 通过JDBC API访问数据库12.1 JDBC的实现原理nJDBC的实现包括三部分:nJDBC驱动管理器:java.sql.DriverManger类,由 SUN公司实现,负责注册特定JDBC驱动器,以及 根据特定驱动器建立与数据库的连

3、接。nJDBC驱动器API:由SUN公司制定,其中最主要的 接口是java.sql.Driver接口。nJDBC驱动器:由数据库供应商或者其他第三方工 具提供商创建,也称为JDBC驱动程序。JDBC驱动 器实现了JDBC驱动器API,负责与特定的数据库连 接,以及处理通信细节。JDBC驱动器可以注册到 JDBC驱动管理器中。12.1 JDBC的实现原理12.1 JDBC的实现原理nSUN公司制定了两套API:nJDBC API:Java应用程序通过它来访问各 种数据库。nJDBC驱动器API:当数据库供应商或者其 他第三方工具提供商为特定数据库创建 JDBC驱动器时,该驱动器必须实现JDBC驱

4、 动器API。12.1 JDBC的实现原理nJDBC驱动器可分为以下四类:n第1类驱动器:JDBC-ODBC驱动器。n第2类驱动器:由部分Java程序代码和部分本地代 码组成。用于与数据库的客户端API通信。n第3类驱动器:完全由Java语言编写的类库。它用 一种与具体数据库服务器无关的协议将请求发送 给服务器的特定组件,再由该组件按照特定数据 库协议对请求进行翻译,并把翻译后的内容发送 给数据库服务器。n第4类驱动器:完全由Java语言编写的类库。它直 接按照特定数据库的协议,把请求发送给数据库 服务器。12.2 安装和配置MySQL数据库n假定MySQL安装后的根目录为,在 /bin目录下

5、提供了mysql.exe,它是 MySQL的客户程序,它支持在命令行中输入SQL语句, 图12-4显示了MySQL客户程序的界面。12.2 安装和配置MySQL数据库n本节课访问数据库的例子都以STOREDB数据 库为例。在STOREDB数据库中有三张表:nCUSTOMERS表:保存了客户信息。本章多数例子 都访问这张表。nORDERS表:保存了客户发出的订单信息。 ORDERS表的ORDER_NUMBER字段表示订单编号 ,PRICE字段表示订单价格。ORDERS表的 CUSTOMER_ID外键参照CUSTOMERS表的ID主键 ,参见图12-5。nACCOUNTS表:保存了银行账户的信息,

6、 BALANCE字段表示账户的余额。12.2 安装和配置MySQL数据库n例程12-1的schema.sql是一个SQL脚本文件, 它包含了创建数据库STOREDB以及三张表的 所有SQL语句。 例程12-1 schema.sql drop database if exists STOREDB; create database STOREDB; use STOREDB;create table CUSTOMERS (ID bigint not null auto_increment primary key,NAME varchar(16) not null,AGE INT,ADDRESS va

7、rchar(255) );12.2 安装和配置MySQL数据库create table ORDERS (ID bigint not null auto_increment primary key,ORDER_NUMBER varchar(16) not null,PRICE FLOAT,CUSTOMER_ID bigint,foreign key(CUSTOMER_ID) references CUSTOMERS(ID) );create table ACCOUNTS (ID bigint not null,NAME varchar(15),BALANCE decimal(10,2),prim

8、ary key (ID) ) type=INNODB;insert into CUSTOMERS(ID,NAME,AGE,ADDRESS) values(1, 小张,23, 北京); insert into ORDERS(ID,ORDER_NUMBER,PRICE,CUSTOMER_ID) values(1, 小张_001,100.12, 1); select * from CUSTOMERS; select * from ORDERS;12.3 JDBC API简介nJDBC API主要位于java.sql包中,关键的接口 与类包括:nDriver接口和DriverManager类:前者表示

9、驱动器 ,后者表示驱动管理器。nConnection接口:表示数据库连接。nStatement接口:负责执行SQL语句。nPreparedStatement接口:负责执行预准备的SQL 语句。nCallableStatement接口:负责执行SQL存储过程。nResultSet接口:表示SQL查询语句返回的结果集。12.3 JDBC API简介n图12-6为java.sql包中主要的接口与类的类框图。12.3 JDBC API简介1. Driver接口和DriverManager类n所有JDBC驱动器都必须实现Driver接口,JDBC驱动器由数据库 厂商或第三方提供。nDriverManag

10、er类主要包括以下方法:nregisterDriver(Driver driver):在DriverManger中注册JDBC 驱动器。ngetConnection(String url, String user, String pwd): 建立和数据库的连接,并返回表示数据库连接的Connection 对象。nsetLoginTimeOut(int seconds):设定等待建立数据库连接的 超时时间。nsetLogWriter(PrintWriter out) :设定输出JDBC日志的 PrintWriter对象。12.3 JDBC API简介2. Connection接口nConnect

11、ion接口主要包括以下方法:ngetMetaData():返回表示数据库的元数据的 DatabaseMetaData对象。元数据包含了描述数据 库的相关信息,本章12.4.10节(元数据)进一步 介绍了元数据的作用。ncreateStatement():创建并返回Statement对象。nprepareStatement(String sql):创建并返回 PreparedStatement对象。12.3 JDBC API简介3. Statement接口nStatement接口提供了三个执行SQL语句的方 法:nexecute(String sql):执行各种SQL语句。nexecuteUpd

12、ate(String sql):执行SQL的insert、 update和delete语句。该方法返回一个int类型的值 ,表示数据库中受该SQL语句影响的记录的数目。nexecuteQuery(String sql):执行SQL的 select语句。该方法返回一个表示查询结果的 ResultSet对象。12.3 JDBC API简介4. PreparedStatement接口nPreparedStatement的使用步骤如下:n(1)通过Connection的prepareStatement()方法生成PreparedStatement对 象。以下SQL语句中NAME的值和AGE的值都用“?

13、”代替,它们表示两个可被 替换的参数: String sql = “ select ID,NAME,AGE,ADDRESS from CUSTOMERS where NAME=? and AGE=?“; PreparedStatement stmt = con.prepareStatement(sql); /预准备SQL语句n(2)调用PreparedStatement的setXXX方法,给参数赋值: stmt.setString(1, “Tom“); /替换SQL语句中的第一个“?” stmt.setInt(2,20); /替换SQL语句中的第二个“?”n(3)执行SQL语句:ResultS

14、et rs = stmt.executeQuery();12.3 JDBC API简介5. ResultSet接口nResultSet接口表示select查询语句得到 的结果集,结果集中的记录的行号从1 开始。调用ResultSet对象的next()方法 ,可以使游标定位到结果集中的下一条 记录。n调用ResultSet对象的getXXX()方法,可 以获得一条记录中某个字段的值。12.3 JDBC API简介5. ResultSet接口n对于以下的select查询语句,结果集存放在一个 ResultSet对象中: String sql=“select ID,NAME,AGE,ADDRESS

15、from CUSTOMERS where AGE20 “; ResultSet rs=stmt.executeQuery(sql);n如果要访问NAME字段,可以采用以下两种方式: rs.getString(2); /指定字段的索引位置 或者 rs.getString(“NAME“); /指定字段的名字12.4 JDBC API的基本用法在Java程序中,通过JDBC API访问数据库包括以下步骤 。n(1)获得要访问的数据库的驱动器的类库,把它放到classpath 中。n(2)在程序中加载并注册JDBC驱动器,其中JDBC-ODBC驱动 器是在JDK中自带的,默认已经注册,所以不需要再注册

16、。以下 给出了加载并注册MySQL驱动器的代码:/注册MySQL Driver java.sql.DriverManager.registerDriver(new com.mysql.jdbc.Driver(); 12.4 JDBC API的基本用法n(3)建立与数据库的连接: Connection con = java.sql.DriverManager.getConnection(dburl,user,password);n(4)创建Statement对象,准备执行SQL语句:Statement stmt = con.createStatement();编写JDC程序的步骤n(5)执行SQL语句: String sql=“ select ID,NAME,AGE,ADDRESS from CUSTOMERS where AGE20“; ResultSet rs=stmt.executeQuery(sql); 12.4 JDBC

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

当前位置:首页 > 资格认证/考试 > 其它考试类文档

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