C++连接postgresql数据库

一、前言

本教程是所有运行环境均在Centos7.2下实现,使用前先确定PostgreSQL数据库安装成功,一定要确保安装路径/usr/pgsql-10下面有bin、include、lib、doc、share文件夹(路径可能不一样,但前三个文件夹一定要有,很关键),如何include没有可以下载源码拷贝过来,但最好是安装好就有。本教程中使用libpqxx库来实现C++和pgsql数据库的连接,libpqxx是postgresql的官方C++客户端API,下载地址:http://pqxx.org/download/software/libpqxx/

二、安装libpqxx

wget http://pqxx.org/download/software/libpqxx/libpqxx-4.0.tar.gz
tar xvfz libpqxx-4.0.tar.gz
cd libpqxx-4.0
./configure
make
make install

如果编译不成功可能原因:

1、需要安装依赖,这个一定得有

yum install postgresql-devel

2、前面安装缺少include文件夹

3、查看错误,根据需要进行安装调试

三、代码测试C++连接pgsql数据库

#include <iostream>
#include <pqxx/pqxx> 

using namespace std;
using namespace pqxx;

int main(int argc, char* argv[])
{
   try{
      connection db("dbname=traindata user=postgres password=123456 hostaddr=127.0.0.1 port=5432");
      if (db.is_open()) {
         cout << "Opened database successfully: " << db.dbname() << endl;
      } else {
         cout << "Can't open database" << endl;
         return 1;
      }
      db.disconnect ();
   }catch (const std::exception &e){
      cerr << e.what() << std::endl;
      return 1;
   }
}

说明:dbname数据库名称,user用户名,password密码,hostaddr为地址,port为端口号,这些一定要根据自己的数据库进行设置。完成后就可以编译上面代码来连接数据库了,记住保持-lpqxx和-lpq给定的顺序。(这里我的工程名为myapp.cpp)

$g++ myapp.cpp -lpqxx -lpq
$./a.out
Opened database successfully: traindata

现在已经成功通过C++代码连接到postgresql数据库了!

结束语:开始本意是想在QT中连接到pgsql数据库,然后进行访问,但Centos7下QT的pgsql驱动没编译好,就采用此方法通过C++进行连接数据库。用C++连接成功后,如若想在QT中使用,只需在.pro文件中添加下面代码即可:

LIBS+=-lpqxx -lpq




猜你喜欢

转载自blog.csdn.net/qq_38378235/article/details/80918772