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