>> HOME >> FC5 MENU >> Javaからデータベースアクセス (PostgreSQL)
Java で作成したプログラムから PostgreSQL データベースへアクセスできるようにします。
Java で作成したプログラムからデータベースにアクセスするには JDBC というデータベースソフトごとに用意されたドライバを使用します。

1. Java 開発実行環境の構築
2. PostgreSQL JDBC のインストール
3. J2SE(Java 2 Platform Standard Edition) の設定
1 ) 環境変数に PostgreSQL JDBC のパスを追加
2 ) 追加した環境変数の反映
4. サンプルプログラムの作成
1 ) データベースの作成
2 ) サンプルプログラムの作成
3 ) サンプルプログラムのコンパイル
4 ) サンプルプログラムの実行
1. Java 開発実行環境の構築
Java 開発実行環境の構築 は『Java Servlet/JSP サーバー (Tomcat) バイナリインストール編』を参照してください。
2. PostgreSQL JDBC のインストール
[root@linux ~]# yum -y install postgresql-jdbc 
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
core                                                                 [1/3]
core                      100% |=========================| 1.1 kB    00:00
updates                                                              [2/3]
updates                   100% |=========================| 1.2 kB    00:00
extras                                                               [3/3]
extras                    100% |=========================| 1.1 kB    00:00
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
--> Populating transaction set with selected packages. Please wait.
---> Downloading header for postgresql-jdbc to pack into transaction set.
postgresql-jdbc-8.1.4-1.F 100% |=========================|  11 kB    00:00
---> Package postgresql-jdbc.i386 0:8.1.4-1.FC5.1 set to be updated
--> Running transaction check

Dependencies Resolved

=============================================================================
 Package                 Arch       Version          Repository        Size
=============================================================================
Installing:
 postgresql-jdbc         i386       8.1.4-1.FC5.1    updates           1.1 M

Transaction Summary
=============================================================================
Install      1 Package(s)
Update       0 Package(s)
Remove       0 Package(s)
Total download size: 1.1 M
Downloading Packages:
(1/1): postgresql-jdbc-8. 100% |=========================| 1.1 MB    00:03
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
  Installing: postgresql-jdbc              ######################### [1/1]

Installed: postgresql-jdbc.i386 0:8.1.4-1.FC5.1
Complete!
3. J2SE(Java 2 Platform Standard Edition) の設定
1 ) 環境変数に PostgreSQL JDBC のパスを追加
[root@linux ~]# vi /etc/profile 

  :
  :
for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        . $i
    fi
done

unset i
unset pathmunge

TOMCAT_HOME=/usr/local/tomcat
CATALINA_HOME=/usr/local/tomcat
export TOMCAT_HOME
export CATALINA_HOME
JAVA_HOME=/usr/java/jdk1.5.0_07
PATH=$PATH:$JAVA_HOME/bin
CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib:$CATALINA_HOME/common/lib/servlet-api.jar
# CLASSPATH に ":/usr/share/java/pg74.216.jdbc2.jar" を追加
CLASSPATH=$CLASSPATH:/usr/share/java/pg74.216.jdbc2.jar
export JAVA_HOME
export PATH
export CLASSPATH
2 ) 追加した環境変数の反映
[root@linux ~]# source /etc/profile 
サーブレットなどで使用する場合には、JDBCドライバのパスを Tomcat のクラスパスに加える必要があります。
ln -s /usr/share/java/pg74.216.jdbc2.jar /usr/local/tomcat/common/lib/
として、シンボリックリンクを作成し、サーブレットから見えるようにします。
4. サンプルプログラムの作成
1 ) データベースの作成
データベースの作成は『データベースサーバー (PostgreSQL)』の「5. PostgreSQL データベースの作成」を参照し、「5 ) データの挿入」までを行ってください。
2 ) サンプルプログラムの作成
[root@linux ~]# vi DbTest.java 

import java.sql.*;
class DbTest {
    public static void main(String[] args) {
        int id;
        String name;
        try {
            // JDBCドライバの登録
            String driver = "org.postgresql.Driver";
            // データベースの指定
            String server   = "192.168.1.11";   // PostgreSQL サーバ ( IP または ホスト名 )
            String dbname   = "testdb";         // データベース名
            String url = "jdbc:postgresql://" + server + "/" + dbname;
            String user     = "fedora";         //データベース作成ユーザ名
            String password = "xxxxxxxxxx";     //データベース作成ユーザパスワード
            Class.forName (driver);
            // データベースとの接続
            Connection con = DriverManager.getConnection(url, user, password);
            // テーブル照会実行
            Statement stmt = con.createStatement ();
            String sql = "SELECT * FROM testtbl";
            ResultSet rs = stmt.executeQuery (sql);
            // テーブル照会結果を出力
            while(rs.next()){
               id = rs.getInt("num");
               name = rs.getString("name");
               System.out.println("ID:" + id);
               System.out.println("名前:" + name);
            }
            // データベースのクローズ
            rs.close();
            stmt.close();
            con.close();
        } catch (SQLException e) {
            System.err.println("SQL failed.");
            e.printStackTrace ();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace ();
        }
    }
}
3 ) サンプルプログラムのコンパイル
[root@linux ~]# javac DbTest.java 
4 ) サンプルプログラムの実行
[root@linux ~]# java DbTest 
ID:1
名前:鈴木 一太郎
Java プログラムがデータベースにアクセスし、データを取得することができました。