PostgreSQL連接JAVA接口
安裝
在我們開始之前,我們需要在Java程序中使用PostgreSQL,確保PostgreSQL的JDBC和Java已經在機器上安裝??梢詸z查機器上是否安裝了Java?,F在,讓我們檢查如何設置JDBC驅動。
|
如果有關于Java JDBC概念了解不是很多,那么建議花半小時學習JDBC教程。
連接到數據庫
下面的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");
- }
- }
在編譯和運行上面的程序,找到pg_hba.conf文件在PostgreSQL安裝目錄中,并添加下面一行:
- # IPv4 local connections:
- host all all 127.0.0.1/32 md5
可以start/restart 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的數據庫中,并會顯示以下兩行:
- 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表中的記錄,并顯示以下兩行:
- Opened database successfully
- Records created successfully
原文鏈接:http://www.yiibai.com/html/postgresql/2013/080895.html