您的位置:寻梦网首页编程乐园数据库PostgreSQL 7.2 Documentation

8.2. 使用驱动

8.2.1. 装入 JDBC

任何使用 JDBC 的源程序 都需要输入 java.sql 包,用:

import java.sql.*;

Important: 不要输入 postgresql 包.如果这样做,你的源码将不能编译, 因为 javac 会被你搞糊涂。

8.2.2. 装载驱动

在你试图与数据库连接之前,你需要装载驱动. 有两种方法,那种更好取决于你使用的代码.

在第一种方法里,你的代码用 Class.forName() 方法显式装载驱动.对于 PostgreSQL ,你要用:

Class.forName("org.postgresql.Driver");

这样将装载驱动,并且在装载时,驱动将自动与 JDBC 注册自己.

注意: forName() 方法可能抛出一个 ClassNotFoundException ,所以如果驱动不可获得时你需要捕获它.

这是最常用的方法,但是把你的代码限制于 PostgreSQL 专用. 如果你的代码以后还要访问其他数据库,并且你不想使用 任何 PostgreSQL 相关的扩展, 那么还有第二种方法可用.

第二种方法把驱动做为参数在 JVM 启动时传递给它,使用 -D 参数.比如:

java -Djdbc.drivers=org.postgresql.Driver example.ImageViewer

在这个例子里, JVM 将试图把驱动作为它的初始化的一部分装载. 一旦完成,启动 ImageViewer

现在这个方法更好一点,因为它允许你的代码用于其他数据库, 而不用重新编译代码.唯一要修改的东西是 URL ,我们下面要提到.

最后一件事情.当你的代码试图打开一个 Connection , 而你收到一个抛出的 No driver available SQLException 例外,这可能是因为驱动不在 class path (类路径)里,或者参数值不正确.

8.2.3. 与数据库联接

JDBC 里,数据库是用 URL (Uniform Resource Locator)(统一资源定位器)表示的. 在 PostgreSQL 里, 这可以由下面几种格式之一表示:

  • jdbc:postgresql:
    
    database
    
    
  • jdbc:postgresql://
    
    host
    
    /
    
    database
    
    
  • jdbc:postgresql://
    
    host
    
    :
    
    port
    
    /
    
    database
    
    

这里:

host

服务器的主机名.缺省是 "localhost".

port

服务器监听的端口号. 缺省时是 PostgreSQL 标准的端口号(5432).

database

数据库名.

要联接(数据库),你需要从 JDBC 获取一个 Connection 实例. 要做这些,你要使用 DriverManager.getConnection() 方法:

Connection db = DriverManager.getConnection(url, username, password);

8.2.4. 关闭联接

要关闭数据库联接,只需要对 Connection 调用 close() 方法:

db.close();