PostgreSQL連接JAVA接口
安裝
在我們開始之前,我們需要在Java程序中使用PostgreSQL,確保PostgreSQL的JDBC和Java已經(jīng)在機(jī)器上安裝??梢詸z查機(jī)器上是否安裝了Java?,F(xiàn)在,讓我們檢查如何設(shè)置JDBC驅(qū)動(dòng)。
|
如果有關(guān)于Java JDBC概念了解不是很多,那么建議花半小時(shí)學(xué)習(xí)JDBC教程。
連接到數(shù)據(jù)庫(kù)
下面的Java代碼顯示了如何連接到一個(gè)現(xiàn)有的數(shù)據(jù)庫(kù)。如果數(shù)據(jù)庫(kù)不存在,那么它就會(huì)被創(chuàng)建,終于將返回一個(gè)數(shù)據(jù)庫(kù)對(duì)象。
- 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");
- }
- }
在編譯和運(yùn)行上面的程序,找到pg_hba.conf文件在PostgreSQL安裝目錄中,并添加下面一行:
- # IPv4 local connections:
- host all all 127.0.0.1/32 md5
可以start/restart Postgres的服務(wù)器的情況下,它沒有運(yùn)行使用下面的命令:
- [root@host]# service postgresql restart
- Stopping postgresql service: [ OK ]
- Starting postgresql service: [ OK ]
現(xiàn)在讓我們來編譯和運(yùn)行上面的程序,以獲得testdb連接。在這里,我們使用的是 postgresas的用戶ID和密碼123來訪問數(shù)據(jù)庫(kù)??梢愿拇藬?shù)據(jù)庫(kù)配置和設(shè)置。我們也假設(shè)當(dāng)前版本的JDBC驅(qū)動(dòng)程序?yàn)閜ostgresql- 9.2-1002.jdbc3.jar,可在當(dāng)前路徑訪問。
- C:\JavaPostgresIntegration>javac PostgreSQLJDBC.java
- C:\JavaPostgresIntegration>java -cp c:\tools\postgresql-9.2-1002.jdbc3.jar;C:\JavaPostgresIntegration PostgreSQLJDBC
- Open database successfully
創(chuàng)建表
下面的Java程序?qū)⒈挥糜谙惹按蜷_的數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)表。確保這個(gè)表在目標(biāo)數(shù)據(jù)庫(kù)中沒有創(chuàng)建過。
- 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");
- }
- }
編譯和執(zhí)行程序時(shí),它會(huì)創(chuàng)建公司表testdb的數(shù)據(jù)庫(kù)中,并會(huì)顯示以下兩行:
- Opened database successfully
- Table created successfully
INSERT 操作
下面的Java程序,顯示我們?nèi)绾卧谏厦娴睦又袆?chuàng)建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");
- }
- }
當(dāng)程序編譯和執(zhí)行,它會(huì)創(chuàng)建COMPANY表中的記錄,并顯示以下兩行:
- Opened database successfully
- Records created successfully
原文鏈接:http://www.yiibai.com/html/postgresql/2013/080895.html