c++框架库应用:数据库的连接池
程序员文章站
2022-05-23 20:32:55
...
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" #includeusing 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
推荐阅读
-
在Python的Django框架中更新数据库数据的方法
-
Python的Django框架中的数据库配置指南
-
Python的Flask框架中使用Flask-SQLAlchemy管理数据库的教程
-
Python的Flask框架中使用Flask-Migrate扩展迁移数据库的教程
-
Python的Tornado框架实现异步非阻塞访问数据库的示例
-
Python的Django框架可适配的各种数据库介绍
-
sqlserver isnull在数据库查询中的应用
-
MySQL数据库8——数据库中函数的应用详解
-
Python的Django框架中使用SQLAlchemy操作数据库的教程
-
tp5(thinkPHP5)框架实现多数据库查询的方法