LoginSignup
4

More than 1 year has passed since last update.

posted at

updated at

Java から PostgreSQL JDBC Driver を使って PostgreSQL に接続してみる

Java から PostgreSQL JDBC Driver を使って PostgreSQL に接続するプログラムの作成方法について説明します。

環境は CentOS 7 または 8、PostgreSQL 9.6 以降を対象とし、PostgreSQL に接続できる状態になっていることを前提とします。PostgreSQL のインストールや設定がまだであれば、インストール方法は こちらの記事、ローカルホスト以外からの接続受けつけに必要な設定方法は こちらの記事 を参照してください。

  1. Java、PostgreSQL JDBC Driver をインストールします。

    $ sudo yum -y install java-1.8.0-openjdk-devel postgresql-jdbc
    (省略)
    Complete!
    
  2. プログラムを作成します。

    プログラムの内容はデータベースの一覧を出力するというものです。エラー処理は行っていません。

    TestJDBC.java
    import java.sql.*;
    
    class TestJDBC {
    
        public static void main(String[] args) throws Exception {
            Class.forName("org.postgresql.Driver");
            String url = "jdbc:postgresql://localhost:5432/postgres";
            String username = "postgres";
            String password = "password";
            Connection conn = DriverManager.getConnection(url, username, password);
            Statement st = conn.createStatement();
            ResultSet rs = st.executeQuery("SELECT datname FROM pg_database");
            while (rs.next()) {
                System.out.println(rs.getString(1));
            }
            rs.close();
            st.close();
            conn.close();
        }
    }
    

    変数の url には jdbc:postgresql://ホスト:ポート/データベース 形式で接続先、username にはユーザ名、password にはパスワードを指定します。ご自身の環境に合わせて書き替えてください。

  3. プログラムをビルドします。

    $ javac TestJDBC.java
    

    エラーメッセージが出力されず、クラスファイル TestJDBC.class が生成されれば、プログラムのビルドは成功です。

  4. プログラムを実行します。

    $ java -cp .:/usr/share/java/postgresql-jdbc.jar TestJDBC
    postgres
    template1
    template0
    

    -cp オプションにはコロン : 区切りでクラスファイル格納先のパスを指定します。ここではカレントディレクトリと PostgreSQL JDBC Driver の jar ファイルを指定しています。

    エラーメッセージが出力されず、データベースの一覧が出力されれば、プログラムの実行は成功です。

以上でプログラムの作成は完了です。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
4