上一期讲了一些如何通过jdbc连接postgresql数据库,这一期准备说一说如何通过libpq连接postgresql数据库。
上一期的jdbc是postgresql的java语言应用程序接口,这一期的libpq对应的是postgresql的C语言应用程序接口。
这里依旧分为三个模块来讲:
一.获取连接
二.执行select语句
三.执行insert,delete,update语句
第一部分:获取连接
要使用libpq连接postgresql数据库首先要引用libpq的头文件libpq-fe.h
然后创建连接字符串和PGconn结构体,设定连接字符串后就可以通过连接字符串获取连接了
const char *conninfo;
PGconn *conn;
conninfo = "host=127.0.0.1 port=5433 dbname=smoondb user=postgres";
conn = PQconnectdb(conninfo);
注意如果这里缺省连接关键字的话,libpq将使用缺省关键字的默认值进行连接,连接关键字的默认值可以参考官方手册。
在jdbc中,我们可以通过try catch的方式进行连接错误捕获,在libpq中也提供了判断连接是否成功建立的接口:
if (PQstatus(conn) != CONNECTION_OK)
{
fprintf(stderr, "Connection to database failed: %s",
PQerrorMessage(conn));
exit_nicely(conn);//关闭连接并执行清理操作
}
这里如果连接不成功的话会返回服务端返回的错误message,如果成功的话后面就可以通过conn操作数据库了。
第二部分:执行select语句
在获取到PGconn实例后,我们就可利用PGconn实例进行对数据库的操作了,和jdbc不同,jdbc中查询语句和更新