教程 > postgresql 教程 > 阅读:64

postgresql java 接口——迹忆客-ag捕鱼王app官网

安装

在我们开始在 java 程序中使用 postgresql 之前,我们需要确保我们在机器上设置了 postgresql jdbc 和 java。如果没有安装,可以查看 java 教程在您的机器上安装 java。现在让我们看看如何设置 postgresql jdbc 驱动程序。

  • 从l.org/download.html)最新版本的postgresql-(version).jdbc.jar。
  • 在您的 classpath 中添加下载的 jar 包postgresql-(version).jdbc.jar,或者您可以将它与 -classpath 选项一起使用,如下面的示例中所述。

以下部分假设您对 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/jiyik_db",
            "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         127.0.0.1/32          md5

您可以使用以下命令启动/重新启动 postgres 服务器,以防它没有运行

[root@host]$ service postgresql restart
stopping postgresql service:                               [  ok  ]
starting postgresql service:                               [  ok  ]

现在,让我们编译并运行上面的程序来连接 jiyik_db。在这里,我们使用postgres作为用户 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/jiyik_db",
            "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");
   }
}

当一个程序被编译和执行时,它将在 jiyik_db 数据库中创建 company 表并显示以下两行

opened database successfully
table created successfully

插入操作

以下 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/jiyik_db",
            "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

选择操作

以下 java 程序显示了我们如何从上面示例中创建的 company 表中获取和显示记录 -

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

当程序被编译和执行时,它会产生以下结果

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

更新操作

以下 java 代码显示了我们如何使用 update 语句更新任何记录,然后从我们的 company 表中获取和显示更新的记录

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

当程序被编译和执行时,它会产生以下结果

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

删除操作

以下 java 代码显示了我们如何使用 delete 语句删除任何记录,然后从我们的 company 表中获取并显示剩余的记录 -

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

当程序被编译和执行时,它会产生以下结果

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

查看笔记

扫码一下
查看教程更方便
网站地图