Linux下C++连接postgresql

linux安装好了postgresql之后,可以通过c++来连接,而c++连接postgresql需要libpqxx依赖库,我通过yum install libpqxx安装成功,c++源文件引用竟然没有生效,提示pqxx/pqxx: No such file or directory,只能通过下载源码编译安装:

wget http://pqxx.org/download/software/libpqxx/libpqxx-4.0.1.tar.gz
tar -xzf libpqxx-4.0.1.tar.gz
cd libpqxx-4.0.1
./configure
make && make install

这样安装之后,pqxx库就安装上了,c++需要包含的文件就在/usr/local/include目录下。

Linux下C++连接postgresql_第1张图片

libpqxx提供了操作postgresql的api。 简单说明一下这些api:

  • connection:连接。需要指定主机、端口、用户名、密码、数据库。
  • work:支持事务的执行器,exec(sql)表示执行sql语句,用来做增删改操作。
  • nontransaction:不支持事务的执行器,也提供exec(sql)执行sql语句,用来做查询操作。
  • result :结果集,执行查询nontransaction.exec(sql)返回的结果。

我们在postgresql数据库mydb下准备一张用户表xx_user

Linux下C++连接postgresql_第2张图片

编写c++代码,我们测试一下连接数据库,向xx_user表中插入数据,查询数据三个功能。

测试连接:

#include 
#include 
using namespace std;
using namespace pqxx;

int main(int argc,char* argv[]){
  try{
    connection conn("dbname=mydb user=postgres password=postgres \
    hostaddr=127.0.0.1 port=5432");
    if(conn.is_open()){
      cout<<"connect to postgresql successfully. dbname="<

编译并运行:g++ main.cpp -lpqxx -lpq 或者g++ main.cpp -lpqxx -lpq -o main

Linux下C++连接postgresql_第3张图片

向表中插入数据:

#include 
#include 
using namespace std;
using namespace pqxx;

int main(int argc,char* argv[]){
  const char* sql;
  try{
    connection conn("dbname=mydb user=postgres password=postgres \
    hostaddr=127.0.0.1 port=5432");
    if(conn.is_open()){
      cout<<"connect to postgresql successfully. dbname="<

编译并运行:

运行成功,查看数据库中的数据: 

Linux下C++连接postgresql_第4张图片

查询数据: 

#include 
#include 
using namespace std;
using namespace pqxx;

int main(int argc,char* argv[]){
  const char* sql;
  try{
    connection conn("dbname=mydb user=postgres password=postgres \
    hostaddr=127.0.0.1 port=5432");
    if(conn.is_open()){
      cout<<"connect to postgresql successfully. dbname="<

编译并运行:

Linux下C++连接postgresql_第5张图片

到这里,c++连接postgresql并执行相关操作就介绍完了,主要用到了libpqxx库,他提供了c++操作postgresql的一系列api。

你可能感兴趣的:(linux)