PostgreSQL - JAVA Arayüzü

Kurulum

Java programlarımızda PostgreSQL kullanmaya başlamadan önce, makinede PostgreSQL JDBC ve Java'nın kurulu olduğundan emin olmalıyız. Makinenizde Java kurulumu için Java öğreticisini kontrol edebilirsiniz. Şimdi PostgreSQL JDBC sürücüsünün nasıl kurulacağına bakalım.

  • En son sürümünü indirin postgresql- (VERSION) .jdbc.jar gelen postgresql-jdbc depo.

  • İndirilen jar dosyası postgresql- (VERSION) .jdbc.jar'ı sınıf yolunuza ekleyin veya aşağıdaki örneklerde açıklandığı gibi -classpath seçeneğiyle birlikte kullanabilirsiniz.

Aşağıdaki bölüm Java JDBC kavramları hakkında çok az bilginiz olduğunu varsaymaktadır. Eğer yoksa, aşağıda açıklanan kavramlara alışmak için JDBC Tutorial ile yarım saat geçirmeniz önerilir .

Veritabanına Bağlanma

Aşağıdaki Java kodu, mevcut bir veritabanına nasıl bağlanılacağını gösterir. Veritabanı yoksa, o zaman oluşturulur ve son olarak bir veritabanı nesnesi döndürülür.

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");
   }
}

Yukarıdaki programı derleyip çalıştırmadan önce şunu bulun: pg_hba.conf PostgreSQL kurulum dizininizdeki dosya ve aşağıdaki satırı ekleyin -

# IPv4 local connections:
host    all         all         127.0.0.1/32          md5

Aşağıdaki komutu kullanarak çalışmaması durumunda postgres sunucusunu başlatabilir / yeniden başlatabilirsiniz -

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

Şimdi testdb ile bağlantı kurmak için yukarıdaki programı derleyip çalıştıralım. Burada kullanıyoruzpostgres kullanıcı kimliği olarak ve 123veritabanına erişmek için parola olarak. Bunu, veritabanı yapılandırmanıza ve kurulumunuza göre değiştirebilirsiniz. Ayrıca JDBC sürücüsünün güncel sürümünü de kabul ediyoruzpostgresql-9.2-1002.jdbc3.jar mevcut yolda mevcuttur.

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

Tablo Oluşturun

Aşağıdaki Java programı, önceden açılan veritabanında bir tablo oluşturmak için kullanılacaktır. Hedef veritabanınızda bu tablonun bulunmadığından emin olun.

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");
   }
}

Bir program derlendiğinde ve yürütüldüğünde, ŞİRKET tablosunu oluşturacaktır. testdb veritabanı ve aşağıdaki iki satırı gösterecektir -

Opened database successfully
Table created successfully

INSERT İşlemi

Aşağıdaki Java programı, yukarıdaki örnekte oluşturulan COMPANY tablomuzda nasıl kayıt oluşturabileceğimizi göstermektedir -

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");
   }
}

Yukarıdaki program derlendiğinde ve yürütüldüğünde, ŞİRKET tablosunda verilen kayıtları oluşturacak ve aşağıdaki iki satırı görüntüleyecektir -

Opened database successfully
Records created successfully

SELECT İşlemi

Aşağıdaki Java programı, yukarıdaki örnekte oluşturulan COMPANY tablomuzdan kayıtları nasıl getirip görüntüleyebileceğimizi gösterir -

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
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();
         ResultSet rs = stmt.executeQuery( "SELECT * FROM COMPANY;" );
         while ( rs.next() ) {
            int id = rs.getInt("id");
            String  name = rs.getString("name");
            int age  = rs.getInt("age");
            String  address = rs.getString("address");
            float salary = rs.getFloat("salary");
            System.out.println( "ID = " + id );
            System.out.println( "NAME = " + name );
            System.out.println( "AGE = " + age );
            System.out.println( "ADDRESS = " + address );
            System.out.println( "SALARY = " + salary );
            System.out.println();
         }
         rs.close();
         stmt.close();
         c.close();
      } catch ( Exception e ) {
         System.err.println( e.getClass().getName()+": "+ e.getMessage() );
         System.exit(0);
      }
      System.out.println("Operation done successfully");
   }
}

Program derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verecektir -

Opened database successfully
ID = 1
NAME = Paul
AGE = 32
ADDRESS = California
SALARY = 20000.0

ID = 2
NAME = Allen
AGE = 25
ADDRESS = Texas
SALARY = 15000.0

ID = 3
NAME = Teddy
AGE = 23
ADDRESS = Norway
SALARY = 20000.0

ID = 4
NAME = Mark
AGE = 25
ADDRESS = Rich-Mond
SALARY = 65000.0

Operation done successfully

GÜNCELLEME İşlemi

Aşağıdaki Java kodu, herhangi bir kaydı güncellemek için UPDATE deyimini nasıl kullanabileceğimizi ve ardından güncellenmiş kayıtları COMPANY tablomuzdan alıp görüntüleyebileceğimizi gösterir -

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
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 = "UPDATE COMPANY set SALARY = 25000.00 where ID=1;";
         stmt.executeUpdate(sql);
         c.commit();

         ResultSet rs = stmt.executeQuery( "SELECT * FROM COMPANY;" );
         while ( rs.next() ) {
            int id = rs.getInt("id");
            String  name = rs.getString("name");
            int age  = rs.getInt("age");
            String  address = rs.getString("address");
            float salary = rs.getFloat("salary");
            System.out.println( "ID = " + id );
            System.out.println( "NAME = " + name );
            System.out.println( "AGE = " + age );
            System.out.println( "ADDRESS = " + address );
            System.out.println( "SALARY = " + salary );
            System.out.println();
         }
         rs.close();
         stmt.close();
         c.close();
      } catch ( Exception e ) {
         System.err.println( e.getClass().getName()+": "+ e.getMessage() );
         System.exit(0);
      }
      System.out.println("Operation done successfully");
   }
}

Program derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verecektir -

Opened database successfully
ID = 2
NAME = Allen
AGE = 25
ADDRESS = Texas
SALARY = 15000.0

ID = 3
NAME = Teddy
AGE = 23
ADDRESS = Norway
SALARY = 20000.0

ID = 4
NAME = Mark
AGE = 25
ADDRESS = Rich-Mond
SALARY = 65000.0

ID = 1
NAME = Paul
AGE = 32
ADDRESS = California
SALARY = 25000.0

Operation done successfully

DELETE İşlemi

Aşağıdaki Java kodu, herhangi bir kaydı silmek için DELETE ifadesini nasıl kullanabileceğimizi ve ardından COMPANY tablomuzdan kalan kayıtları getirip görüntüleyebileceğimizi gösterir -

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.Statement;


public class PostgreSQLJDBC6 {
   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 = "DELETE from COMPANY where ID = 2;";
         stmt.executeUpdate(sql);
         c.commit();

         ResultSet rs = stmt.executeQuery( "SELECT * FROM COMPANY;" );
         while ( rs.next() ) {
            int id = rs.getInt("id");
            String  name = rs.getString("name");
            int age  = rs.getInt("age");
            String  address = rs.getString("address");
            float salary = rs.getFloat("salary");
            System.out.println( "ID = " + id );
            System.out.println( "NAME = " + name );
            System.out.println( "AGE = " + age );
            System.out.println( "ADDRESS = " + address );
            System.out.println( "SALARY = " + salary );
            System.out.println();
         }
         rs.close();
         stmt.close();
         c.close();
      } catch ( Exception e ) {
         System.err.println( e.getClass().getName()+": "+ e.getMessage() );
         System.exit(0);
      }
      System.out.println("Operation done successfully");
   }
}

Program derlendiğinde ve yürütüldüğünde, aşağıdaki sonucu verecektir -

Opened database successfully
ID = 3
NAME = Teddy
AGE = 23
ADDRESS = Norway
SALARY = 20000.0

ID = 4
NAME = Mark
AGE = 25
ADDRESS = Rich-Mond
SALARY = 65000.0

ID = 1
NAME = Paul
AGE = 32
ADDRESS = California
SALARY = 25000.0
Operation done successfully