一、工具
(1)Java开发平台:IntelliJ IDEA 2018.3.6
(2)PgSQL数据库:postgresql-9.5.21(其他版本也行)
(3)数据库管理软件:Navicat Premium 15
(4)PgSQL连接驱动:postgresql-42.3.3.jar
二、准备工作
在连接之前应先完成一下工作:
(1)在IDEA中新建一个JAVA项目文件
(2)下载安装PgSQL数据库
(3)下载安装Navicat并搭建PgSQL数据库
在IDEA中新建一个JAVA项目文件、下载安装PgSQL数据库以及下载安装Navicat都相对比较容易,再此不再赘述。接下来介绍一下在Navicat中搭建PgSQL数据库。其操作过程如下:
(1)打数据库管理软件Navicat,点击左上角的连接,选择PostgreSQL。
(2)填写连接信息,此处只要填写连接名和密码(安装PgSQL时设置的密码),其他的默认即可。localhost为本机地址,5432是PgSQL数据库的端口。填写完连接信息后,点击测试连接,如果连接成功对话框即表示PgSQL Server已开启。点击确定完成PgSQL数据库的连接。
(3)连接完成以后,在左侧会看到连接信息,其中Bolisen子目录下的postgres是一个初始的PgSQL数据库,可以直接使用。也可以选中postgres右击选择新建数据库创建一个新的PgSQL数据库。
(4)为了测试之后的连接,在postgres数据库中创建一个员工信息表,方便后面的演示;右击public子目录中的表,选择新建表----->常规。
。
(5)向员工信息表中添加相应的字段,比如:id工号、name姓名等。以id工号为例,其中的名表示字段名;类型表示字段的数据类型;长度表示字段的长度,一般默认即可;不是null表示该字段不能是空的;键表示该字段不能重复,在这里员工的id工号不能重复;注释表示对该字段的解释。添加完字段后,点击保存,填写表的名称并点击保存即可完成员工信息表的创建。
(6)打开员工信息表,向表中添加员工信息。
(7)新建一个查询,通过编写SQL语句查询员工的信息,例如:查询员工XiaoYang的id工号。自此PgSQL数据库的搭建的完成了。
三、JDBC连接PgSQL数据库
1、在Java开发平台IntelliJ IDEA 中创建一个Java工程项目。右击File,选择Project Structure。在左侧点击Modules,然后点击右侧的“+”导入IDEA连接PgSQL数据库所必需的驱动包postgresql-42.3.3.jar。点击Apply---->OK。
2、在工程界面右侧找到Database并打开,点击“+”选择Database Source找到PgSQL。填入将要访问的数据库名、用户名和密码等信息后,点击Test Connection,可以看到Successful,说明IDEA与PgSQL数据库连接成功。
3、连接成功以后,使用IDEA查询操作PgSQL数据库,其过程如下:
(1)代码测试数据库是否连接成功
// 加载驱动
private static String url = "jdbc:postgresql://localhost:5432/postgres";//postgres为所要连接的数据库
private static String user = "postgres";//PgSQL登录名
private static String pass = "<PgSQL登录密码>";//写自己之前设置的
private static Connection con;
public static void main(String[] args) throws Exception {
Connection con;
try {
//注册JDBC驱动
Class.forName("org.postgresql.Driver");
//建立连接
con = DriverManager.getConnection(url, user, pass);
if (!con.isClosed()) {
System.out.println("数据库连接成功");
}
con.close();
} catch (ClassNotFoundException e) {
System.out.println("数据库驱动没有安装");
} catch (SQLException e) {
e.printStackTrace();
System.out.println("数据库连接失败");
}
}
(2)编写SQL语句查询操作数据库,例如:查询员工Xiaoming的id工号
import java.sql.*;
public class Main {
public static void main(String[] args) throws Exception {
//加载驱动
Class.forName("org.postgresql.Driver");
String url="jdbc:postgresql://localhost:5432/postgres";
String user="postgres";
String password="<PgSQL登录密码>";//写自己之前设置的
//建立连接
Connection conn = null;
Statement stmt = null;
conn= DriverManager.getConnection(url,user,password);
stmt=conn.createStatement();
//编译和执行SQL语句
String sql = "SELECT id FROM \"Yuangong\" WHERE name='XiaoYang';";
ResultSet rs = stmt.executeQuery(sql);
while(rs.next())
{
int i=1;
for(i=1;i<=1;i++){ //因为id长度为1,所以此处i<=1
System.out.println(rs.getInt(i));
}
System.out.println();
}
}
}