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




