blog

PostgreSQL接続JAVAインタフェース

最初に、Javaプログラムで使用するマシンにJDBCとJavaがインストールされていることを確認する必要があります。Javaがマシンにインストールされているかどうかを確認することができます。...

Aug 25, 2024 · 9 min. read
シェア

取付

はじめに、JavaアプリケーションでPostgreSQLを使用するためには、PostgreSQL JDBCとマシンにインストールされていることを確認する必要があります。Javaがマシンにインストールされているかどうかを確認することができます。

  • JDBCライブラリの***バージョンをPostgreSQLからダウンロードしてください。

  • ダウンロードしたjarファイルをクラスパスに追加するには、次の例のように-classpathオプションと一緒に使用します。

Java JDBCの概念について知ることがあまりない場合は、JDBCチュートリアルに30分費やすことをお勧めします。

データベースへの接続

以下のJavaコードは、既存のデータベースに接続する方法を示しています。データベースが存在しない場合、データベースが作成され、最後にデータベース・オブジェクトが返されます。

import java.sql.Connection; 
import java.sql.DriverManager; 
 
public class PostgreSQLJDBC { 
   public static void main(String args[]) { 
      Connection c = null; 
      try { 
         Class.forName("org.postgresql.Driver"); 
         c = DriverManager 
            .getConnection("jdbc:postgresql://localhost:5432/testdb", 
            "postgres", "123"); 
      } catch (Exception e) { 
         e.printStackTrace(); 
         System.err.println(e.getClass().getName()+": "+e.getMessage()); 
         System.exit(0); 
      } 
      System.out.println("Opened database successfully"); 
   } 
} 

上記のプログラムをコンパイルして実行した後、PostgreSQLのインストールディレクトリにあるpg_hba.confファイルを探し、以下の行を追加してください:

# IPv4 local connections: 
host    all         all         .1/32          md5 

Postgresサーバーが起動していない場合は、以下のコマンドで起動/再起動できます:

[root@host]# service postgresql restart 
Stopping postgresql service:                               [  OK  ] 
Starting postgresql service:                               [  OK  ] 

では、上記のプログラムをコンパイルして実行し、testdb接続を取得してみましょう。ここではpostgresasのユーザIDとパスワード123を使ってデータベースにアクセスします。このデータベースの構成と設定は変更することができます。また、現在のJDBCドライバのバージョンはpostgresql- 9.2-1002.jdbc3.jarで、現在のパスでアクセスできるものとします。

C:\JavaPostgresIntegration>javac PostgreSQLJDBC.java 
C:\JavaPostgresIntegration>java -cp c:\tools\postgresql-9.2-1002.jdbc3.jar;C:\JavaPostgresIntegration PostgreSQLJDBC 
Open database successfully 

テーブルの作成

次の Java プログラムは、以前に開いたデータベースにテーブルを作成するために使用します。このテーブルがターゲット・データベースに作成されていないことを確認してください。

import java.sql.*; 
 
import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.Statement; 
 
 
public class PostgreSQLJDBC { 
   public static void main( String args[] ) 
     { 
       Connection c = null; 
       Statement stmt = null; 
       try { 
         Class.forName("org.postgresql.Driver"); 
         c = DriverManager 
            .getConnection("jdbc:postgresql://localhost:5432/testdb", 
            "manisha", "123"); 
         System.out.println("Opened database successfully"); 
 
         stmt = c.createStatement(); 
         String sql = "CREATE TABLE COMPANY " + 
                      "(ID INT PRIMARY KEY     NOT NULL," + 
                      " NAME           TEXT    NOT NULL, " + 
                      " AGE            INT     NOT NULL, " + 
                      " ADDRESS        CHAR(50), " + 
                      " SALARY         REAL)"; 
         stmt.executeUpdate(sql); 
         stmt.close(); 
         c.close(); 
       } catch ( Exception e ) { 
         System.err.println( e.getClass().getName()+": "+ e.getMessage() ); 
         System.exit(0); 
       } 
       System.out.println("Table created successfully"); 
     } 
} 

プログラムをコンパイルして実行すると、データベースに会社テーブルtestdbが作成され、以下の2行が表示されます:

Opened database successfully 
Table created successfully 

INSERT操作

次のJavaプログラムは、上記の例でCOMPANYテーブルにレコードを作成する方法を示しています:

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.Statement; 
 
public class PostgreSQLJDBC { 
   public static void main(String args[]) { 
      Connection c = null; 
      Statement stmt = null; 
      try { 
         Class.forName("org.postgresql.Driver"); 
         c = DriverManager 
            .getConnection("jdbc:postgresql://localhost:5432/testdb", 
            "manisha", "123"); 
         c.setAutoCommit(false); 
         System.out.println("Opened database successfully"); 
 
         stmt = c.createStatement(); 
         String sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " 
               + "VALUES (1, 'Paul', 32, 'California', 20000.00 );"; 
         stmt.executeUpdate(sql); 
 
         sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " 
               + "VALUES (2, 'Allen', 25, 'Texas', 15000.00 );"; 
         stmt.executeUpdate(sql); 
 
         sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " 
               + "VALUES (3, 'Teddy', 23, 'Norway', 20000.00 );"; 
         stmt.executeUpdate(sql); 
 
         sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) " 
               + "VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00 );"; 
         stmt.executeUpdate(sql); 
 
         stmt.close(); 
         c.commit(); 
         c.close(); 
      } catch (Exception e) { 
         System.err.println( e.getClass().getName()+": "+ e.getMessage() ); 
         System.exit(0); 
      } 
      System.out.println("Records created successfully"); 
   } 
} 

プログラムがコンパイルされ実行されると、COMPANYテーブルにレコードが作成され、以下の2行が表示されます:

Opened database successfully 
Records created successfully 

Read next

ブロードバンド・キャピタル、ジュバンデジタルのナスダックIPOに投資

ニューヨーク時間の11月22日、3GポータルとGOデスクトップの親会社であるジュビラン・デジタルは、ティッカーシンボル "GOMO "でナスダックへの上場に成功しました。 ジュビラン・デジタルの発行価格は11.22ドルで、初値は発行価格を25.7%上回る14.08ドル。終値は発行価格より18.98%高い13.35ドル。終値でのジュビリー・デジタルの時価総額は4億3400万ドル。JPモルガン・チェースとクレディ・スイスがこの取引の引受人。

Aug 25, 2024 · 1 min read