2024年4月11日发(作者:)

JDBC

百科名片

JDBC(Java Data Base Connectivity, java数据库连接)是一种用于执行SQL语句的

Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口

组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够

编写数据库应用程序.

用途

简单地说,JDBC 可做三件事:与数据库建立连接、发送操作数据库的语句并处

理结果。下列代码段给出了以上三步的基本示例:

Connection con =

nection("jdbc:odbc:wombat","login",

"password");

Statement stmt = Statement();

ResultSet rs = eQuery("SELECT a, b, c FROM Table1");

while (()) {

int x = ("a");

String s = ing("b");

float f = at("c");

}

入门-建立联接

装载驱动程序

你需要做的第一事情是你与想要使用的 DBMS 建立一个连接。这包含 2 个步

骤:装载驱动程序并建立连接。

装载驱动程序只需要非常简单的一行代码。例如,你想要使用 JDBC-ODBC 桥

驱动程序, 可以用下列代码装载它:

e("bcDriver");

你的驱动程序文档将告诉你应该使用的类名。例如, 如果类名是

XYZ ,你将用代码以下的代码装载驱动程序:

e("XYZ");

(你不需要创建一个驱动程序类的实例并且用 DriverManager 登记它,因为调

用 e 将自动将加载驱动程序类。如果你曾自己创建实例,你将创建

一个不必要的副本,但它不会带来什么坏处。)

加载 Driver 类后,它们即可用来与数据库建立连接。

建立连接

第二步就是用适当的驱动程序类与 DBMS 建立一个连接。下列代码是一般的做

法:

Connection con = nection(url, "myLogin",

"myPassword");

这个步骤也非常简单,最难的是怎么提供 url。如果你正在使用 JDBC-ODBC

桥, JDBC URL 将以 jdbc:odbc 开始:余下 URL 通常是你的数据源名字或数据

库系统。因此,假设你正在使用 ODBC 存取一个叫 "Fred" 的 ODBC 数据源,你

的 JDBC URL 是 jdbc:odbc:Fred 。把 "myLogin" 及 "myPassword" 替换为

你登陆 DBMS 的用户名及口令。如果你登陆数据库系统的用户名为 "Fernanda"

口令为 "J8",只需下面的 2 行代码就可以建立一个连接:

String url = "jdbc:odbc:Fred";

Connection con = nection(url,"Fernanda",

"J8");

如果你使用的是第三方开发了的 JDBC驱动程序,文档将告诉你该使用什么

subprotocol, 就是在 JDBC URL 中放在 jdbc 后面的部分。例如, 如果驱动程

序开发者注册了 acme 作为 subprotocol, JDBC URL 的第一和第二部分将是

jdbc:acme。驱动程序文档也会告诉你余下 JDBC URL 的格式。JDBC URL 最后

一部分提供了定位数据库的信息。

如果你装载的驱动程序识别了提供给 nection 的

JDBC URL ,那个驱动程序将根据 JDBC URL 建立一个到指定 DBMS 的连接。

正如名称所示,DriverManager 类在幕后为你管理建立连接的所有细节。除非你是

正在写驱动程序,你可能无需使用此类的其它任何方法,一般程序员需要在此类中直

接使用的唯一方法是 nection。

nection 方法返回一个打开的连接,你可以使用此连

接创建 JDBC statements 并发送 SQL 语句到数据库。在前面的例子里,con 对

象是一个打开的连接,并且我们要在以后的例子里使用它。

入门-设置表

创建表

首先,我们在我们的示例数据库创建其中一张表 COFFEES,包含在咖啡店所卖

咖啡的必要的信息,包括咖啡名字,他们的价格,本星期卖了多少磅及迄今为止卖的

数目。关于 COFFEES 表我们以后会详细描述,如下:

我们写了创建 COFFEES 表的 SQL 语句。现在我们在它外面加上引号(使它

成为字符串),并且字符串赋值给变量 createTableCoffees,在以后的 JDBC 代

码中我们可以使用此变量。正如看到的,DBMS 并不在意分行,但对 Java 语言来,

String 对象分行是通不过编译的。因而,我们可以用加号 (+) 把每一行的串连接。

String createTableCoffees = "CREATE TABLE COFFEES " +