欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

c++框架库应用:数据库的连接池

程序员文章站 2022-04-25 22:45:13
...
Poco c++中的数据库驱动部分,简洁,干净,工整,和数据库连接,封装成这样,还是比较好用的.下面是连接MySQL连接的方法.

一 需求说明

与MySQL数据库建立连接池,并在连接池中获得一个连接,实现数据库常用增删改查

二 目标说明

写出ANSI风格的代码,并输出高度结果到终端,验证程序的有效性

三 调试条件:

1.系统:ubuntu

2.qt 或 其它IDE

3.安装了mysql,有正确的访问账户和密码

四 例程说明

使用IDE:Qt Creator

项目文件:pocomysql.pro

QT       += core network
QT       -= gui
TARGET = poco_mysql
CONFIG   += console
CONFIG   -= app_bundle
 
DEFINES += CHARTDIR_HIDE_OBSOLETE _CRT_SECURE_NO_WARNINGS
INCLUDEPATH += /usr/local/include/Poco -I /usr/include/mysql
LIBS += -L/usr/local/lib -lPocoData -lPocoDataMySQL -lPocoDataSQLite  -lPocoCrypto   -lPocoUtil -lPocoFoundation -L /usr/lib64/mysql
#LIBS += -L/usr/local/lib -lPocoData  -lPocoDataSQLite   -lPocoFoundation  -lPocoCrypto   -lPocoUtil
SOURCES += \
    mysql.cpp

main文件

#include "Poco/String.h"
#include "Poco/Format.h"
#include "Poco/Exception.h"
#include "Poco/Data/StatementImpl.h"
#include "Poco/Data/MySQL/Connector.h"
#include "Poco/Data/MySQL/MySQLException.h"
#include "Poco/Data/Session.h"
#include "Poco/Data/SessionPool.h"
#include "Poco/Data/SessionFactory.h"
#include "Poco/Data/LOB.h"
#include "Poco/Data/MySQL/MySQLStatementImpl.h"
#include "Poco/DateTime.h"
#include "Poco/Data/RecordSet.h"
#include "Poco/Data/Column.h"
 
#include 
 
using namespace Poco::Data::Keywords;
using namespace Poco::Data;
using Poco::Data::Session;
using Poco::Data::MySQL::ConnectionException;
using Poco::Data::MySQL::StatementException;
using Poco::NotFoundException;
using Poco::Data::Statement;
using Poco::DateTime;
using Poco::Data::RecordSet;
//给出访问数据库的信息
std::string _dbConnString  = "host=localhost;port=3306;"
                                                "user=root;password=19810311;"
                                                "db=smart;"
                                                "compress=true;auto-reconnect=true";
 
int main(int argc, char** argv)
{
        MySQL::Connector::registerConnector();
        //与数据库建立一个连接池
        Poco::Data::SessionPool pool(MySQL::Connector::KEY, _dbConnString,1,32,10);
        //从数据库存连接池中获得一个数据库连接
        Poco::Data::Session ses(pool.get());
        //如果与数据库建立会话成功,输出连接信息
        if(ses.isConnected())
             std::cout  names;
        ses ::const_iterator it = names.begin(); it != names.end(); ++it)
        {
            std::cout  names1;
        ses ::const_iterator it = names1.begin(); it != names1.end(); ++it)
        {
           std::cout () 

四 输出结果

*** Connected to (host=localhost;port=3306;user=root;password=19810311;db=smart;compress=true;auto-reconnect=true)

information_schema

mysql

performance_schema

smart

*** tables: Bart Simpson

name

sex

Bart Simpson 1980-04-01 00:00:00

Lisa Simpson 1982-05-09 00:00:00