用JDBC建立数据库应用外文翻译资料
2023-01-31 11:29:37
用JDBC建立数据库应用
(Building Database Applications with JDBC 翻译)
课程目的
描述组成JDBC API核心的接口,包括驱动、连接、语句、结果集界面以及它们之间的联系。
识别使用DriverManager类连接到数据库所需的组件,包括JDBC URL
提交查询然后得到结果,包括声明、返回结果集、循环访问结果并正确关闭结果集,语句和连接
JDBC是JAVA很重要的应用程序界面,它定义了用户是如何与数据库交互的。因此,JDBC对构建大型企业Java解决方案至关重要。
在高层次上,与数据库交互涉及以下步骤:
1.建立与数据库的连接
2.执行SQL语句完成检索、创建、修改数据库中表的功能
3.关闭与数据库的连接
Java提供了一组API(JDBC)来执行这些活动。 你可以使用JDBC建立与数据库的连接,执行SQL查询,并关闭与数据库的连接。 JDBC的优点是不需要为特定数据库编写程序。 JDBC会在Java程序与所使用的数据库类型之间建立松耦合。 例如,数据库可能在建立连接方面有所不同(API名称可能不同,依此类推)。 JDBC隐藏了这些数据库的所有不同点,并提供了一组可用于与所有类型的数据库进行交互的API。 需要注意的是,JDBC仅支持关系数据库,如MySQL,Oracle,Microsoft SQL和DB2。 它不支持新一代数据库(也称为NoSQL数据库),如MongoDB和Neo4j。
从OCPJP 8考试的角度来看,你应该知道如何使用JDBC连接到数据库并执行数据库操作,如插入,更新和创建数据库实例。你也需要知道如何提交查询并从数据库中读取结果并正确释放数据库资源。
JDBC类和接口属于java.sql*和javax.sql*包。 本章需要你已经熟悉SQL查询,并对数据库有一些基本的了解概念。本章会介绍JDBC 4.2,它是Java SE 8版本的一部分。
JDBC简介
课程目的
描述组成JDBC API核心的接口,包括驱动、连接、语句、结果集界面以及它们之间的联系。
我们先来看看JDBC的重要组件,以及这些组件如何协同工作来实现与数据库无缝集成。JDBC的简化架构如图12-1所示。一个Java应用程序是使用JDBC API与数据库进行交互的。JDBC API使用JDBC驱动程序管理器来进行不同类型的数据库透明地连接和执行各种数据库活动。JDBC驱动程序管理器使用各种JDBC驱动程序连接到其特定的DBMS。
图12-1 JDBC架构
JDBC驱动程序和驱动程序管理器在实现JDBC方面发挥了关键作用。JDBC驱动程序是专门设计用于与其相应的DBMS交互。驱动程序管理器作为一个目录JDBC驱动程序 - 它维护着一个可用数据源及其驱动程序的列表。驱动程序管理器可以选择一个适当的驱动程序与相应的DBMS通信。它可以管理多个并发驱动程序连接到它们各自的数据源。
在图中可以看到异构交互的复杂性由JDBC驱动程序管理器和JDBC驱动程序处理。而下层的细节和相关的复杂性对于应用程序开发人员变得不可见。
安装数据库
在开始探索JDBC API及其用法之前,必须有一个可运行的数据库。在开始编写JDBC程序之前,需要正确配置数据库。这里可以使用任何数据库。 本章中的示例使用MySQL来解释JDBC API的各个方面,因为MySQL是免费的而且广泛可用。本节介绍了在计算机上建立MySQL数据库的步骤,在这里使用的操作系统是Windows(如果操作系统不同,步骤将会略有不同)。
- 从MySQL下载网页上下载最新的MySQL
- 调用MySQL安装程序,并按照安装所显示的所有步骤向导。 始终选择默认值,并完成安装。安装过程中会需要你提供root / admin密码;记住它,因为它将被用于例子。
- 调用MySQL命令行客户端(在这里,它是MySQL 5.5 Command Line Client,显示在“开始”菜单上)。在提供root / admin密码后,你会看到一个MySQL提示。
以下代码是用于设置数据库并创建两个记录:
Enter password: ********
Welcome to the MySQL monitor. Commands end with ; or g.
Your MySQL connection id is 1
Server version: 5.5.27 MySQL Community Server (GPL)
Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names
may be trademarks of their respective owners.
Type help; or h for help. Type c to clear the current input statement.
mysqlgt; /* Lets create a database for our use.*/
mysqlgt; create database addressBook;
Query OK, 1 row affected (0.01 sec)
mysqlgt; /* Now, lets create a table in this database and insert two records for our use
later. */
mysqlgt; use addressBook;
Database changed
mysqlgt; create table contact (id int not null auto_increment, firstName varchar(30) Not null,
lastName varchar(30), email varchar(30), phoneNo varchar(13), primary key (id));
Query OK, 0 rows affected (0.20 sec)
mysqlgt; insert into contact values (default, Michael, Taylor, michael@abc.com,
919876543210);
Query OK, 1 row affected (0.10 sec)
mysqlgt; insert into contact values (default, William, Becker, william@abc.com,
449876543210);
Query OK, 1 row affected (0.03 sec)
mysqlgt; select * from contact;
---- ----------- ---------- ----------------- ---------------
| id | firstName | lastName | email
| phoneNo
|
---- ----------- ---------- ----------------- ---------------
| 1 | Michael | Taylor | michael@abc.com | 919876543210 |
| 2 | William | Becker | william@abc.com | 449876543210 |
---- ----------- ---------- ----------------- ---------------
2 rows in set (0.00 sec)
mysqlgt; /* Thats it. Our database is ready to use now.*/
与数据库相连
本节讨论如何以编程方式连接到数据库。首先,我们来简要介绍一下连接界面。
连接界面
java.sql包的连接接口可用于应用程序和数据库的连接。它是应用程序和数据库通信的渠道。表12-1中列举了主要的连接接口的方法。由于所有这些方法都抛出SQL异常,所以在表中没有特别提到。
表12-1 主要的连接接口的方法
方法 |
描述 |
Statement createStatement() |
创建可用于将SQL语句发送到数据库的Statement对象。 |
PreparedStatement Creates a PreparedStatementobject that can contain SQL statements. prepareStatement(String sql) |
创建一个可以包含SQL语句的Prepared Statement对象。 SQL语句可以有IN参数; 他们可能包含? 符号,用作后期传递实际值的占位符。 |
CallableStatement prepareCall(String sql) |
创建一个Callable Statement对象,用于调用数据库中的存储过程。 SQL语句可以具有INor OUTparameters; 它们可能包含?符号,这些符号用作稍后传递实际值的占位符。 |
DatabaseMetaData getMetaData() |
获取DataBaseMetaData对象。 此元数据包含数据库模式信息,表信息等,当您不知道底层数据库时,这尤其有用。 |
Clob createClob() |
返回Clob对象(Clob是接口的名称)。 字符大对象(CLOB)是SQL中的内置类型; 它可以用于将列值存储在数据库表的行中。 |
Blob createBlob() |
返回Blob对象(Blob是接口的名称)。 二进制大对象(BLOB)是SQL中的内置类型; 它可以用于将列值存储在数据库表的行中。 |
void setSchema(String schema) |
传递模式名称时,将此Connection对象设置为要访问的数据库模式。 |
String getSchema() |
返回与此Connection对象关联的数据库的模式名称; 如果没有模式与它相关联,则返回null。 |
使用驱动程序管理器连接数据库
课程目的
识别使用DriverManager类连接到数据库所需的组件,包括JDBC URL
与数据库通信的第一步是在应用程序之间建立连接和数据库服务器。建立连接需要先了解数据库URL,所以让我们先讨论一下它。
以下是JDBC URL的一般格式:
dbc:lt;subprotocolgt;:lt;subnamegt;
An example of a URL string is jdbc:mysql://localhost:3306/:
bull; jdbc(lt;protocolgt;) isthe same for all DBMSs.
bull; lt;subprotocolgt;differs for each DBMS—it is mysqlin this case. Sometimes it includes
the vendor name (absent in this example).
bull;
The format of lt;subnamegt;depends on the database, but its general format is
//lt;servergt;:lt;portgt;/database. lt;servergt;depends on the location in which you
host the database. Each DBMS uses a specific lt;portgt;number (3306 in the case of
MySQL). Finally, the database name is provided
Here are few more
剩余内容已隐藏,支付完成后下载完整资料
资料编号:[140876],资料为PDF文档或Word文档,PDF文档可免费转换为Word