PostgreSQL连接JAVA接口
安装
在我们开始之前,我们需要在Java程序中使用PostgreSQL,确保PostgreSQL的JDBC和Java已经在机器上安装。可以检查机器上是否安装了Java。现在,让我们检查如何设置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