of {$slidecount} ½ {$title} ATZJG.NET {$author}

首页






JDBC
数据库原理及应用实验


Haifeng Xu


(hfxu@yzu.edu.cn)

参考文献: Regina Obe Leo Hsu 著, 丁奇鹏 译《PostgreSQL即学即用》

目录

JDBC

JDBC 简介


使用JDBC连接数据库

使用JDBC连接数据库

检查Java的版本

Java 在操作系统上的安装我们就不作介绍了, 网上有很多很好的教程. 比如文章 How to install Java Development Kit (JDK) on openSUSE and SLES 介绍了如何在 openSUSE 和 SLES 上安装 Java 开发套件.

如果 Java 已安装, 可以使用 java -version 检查Java的版本.

PS D:\work\cs\Database\postgres\JDBC> java -version
java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

下载相应版本的 JDBC 驱动

从网站 https://jdbc.postgresql.org/download/ 下载 PostgreSQL JDBC Driver.

这里我们下载关于 Java 8 的 JDBC 4.2 版本的 jar 文件. 将其拷贝到C:\Program Files\Java\jdk1.8.0_152\lib 目录.

检查环境变量 %JAVA_HOME%.

C:\Users\haife>echo %JAVA_HOME%
C:\Program Files\Java\jdk1.8.0_152

将 "C:\Program Files\Java\jdk1.8.0_152\lib\postgresql-42.7.8.jar;" 或 "%JAVA_HOME%\lib\postgresql-42.7.8.jar" 添加到环境变量 %CLASSPATH% 中.





下面的代码来自 www.codejava.net, 将其保存到文件 JdbcPostgresqlConnection.java. 由于有 package 指令, 故存放于 net/codejava/jdbc 目录下.

PS D:\work\cs\Database\postgres\JDBC> tree .
卷 计算机 的文件夹 PATH 列表
卷序列号为 004A005C 9C68:468A
D:\WORK\CS\DATABASE\POSTGRES\JDBC
└─net
    └─codejava
        └─jdbc

JdbcPostgresqlConnection.java

package net.codejava.jdbc;
 
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
 
/**
 * This program demonstrates how to make database connection to PostgreSQL
 * server using JDBC.
 * @author www.codejava.net
 *
 */
public class JdbcPostgresqlConnection {
 
    public static void main(String[] args) {
        // create three connections to three different databases on localhost
        Connection conn1 = null;
        Connection conn2 = null;
        Connection conn3 = null;
 
        try {
			//Class clazz = Class.forName("org.postgresql.Driver");//不需要
			//clazz.newInstance();

            // Connect method #1
            String dbURL1 = "jdbc:postgresql:postgresql_book?user=postgres&password=34klq*";
            conn1 = DriverManager.getConnection(dbURL1);
            if (conn1 != null) {
                System.out.println("Connected to database #1");
            }
 
            // Connect method #2
            String dbURL2 = "jdbc:postgresql://localhost/postgresql_book";
            String user = "postgres";
            String pass = "34klq*";
 
            conn2 = DriverManager.getConnection(dbURL2, user, pass);
            if (conn2 != null) {
                System.out.println("Connected to database #2");
            }
 
            // Connect method #3
            String dbURL3 = "jdbc:postgresql://localhost:5432/postgresql_book";
            Properties parameters = new Properties();
            parameters.put("user", "postgres");
            parameters.put("password", "34klq*");
 
            conn3 = DriverManager.getConnection(dbURL3, parameters);
            if (conn3 != null) {
                System.out.println("Connected to database #3");
            }
 
        }
		//catch (SQLException | InstantiationException | IllegalAccessException ex) {
		catch (SQLException ex){
            ex.printStackTrace();      
        } finally {
            try {
                if (conn1 != null && !conn1.isClosed()) {
                    conn1.close();
                }
                if (conn2 != null && !conn2.isClosed()) {
                    conn2.close();
                }
                if (conn3 != null && !conn3.isClosed()) {
                    conn3.close();
                }
            } catch (SQLException ex) {
                ex.printStackTrace();
            }
        }
    }
}

编译运行

PS D:\work\cs\Database\postgres\JDBC> javac -d . .\net\codejava\jdbc\JdbcPostgresqlConnection.java
PS D:\work\cs\Database\postgres\JDBC> java net.codejava.jdbc.JdbcPostgresqlConnection
Connected to database #1
Connected to database #2
Connected to database #3







End






Thanks very much!