VC2010利用MySQL++访问mysql. 及连接池示例

VS2010环境下用c++语言在MFC对话框程序中连接及操作Mysql 数据库 在 vs2010 环境下, 在C++语言写的MFC对话框程序中连接并操作 MySql 数据库,实现向数据库上传数据,以及从数据库查询数据并且简单的显示出来。 阅读详情

首先下载并安装mysql,我使用的为mysql 5.5版本,安装时注意安装c++的开发包。


#1  下载mysql++,解压,  找到install.hta, 修改对应路径,指向vc2008所在路径,  生成mysql++ 的lib 至某路径, 如 d:\mysql++3.10\ include

#2  打开mysql++ vc2008目录是mysql++_mysqlpp.sln, 升级到vs2010版本, 因为vs2010去掉了针对整个解决方案修改vc目录的功能(只能单个项目修改,所以原项目编译不过)

#3  视图》其它窗口》随意选择一个项目 ,打开 win32….user节点, 设置vc目录(include, lib 等),则将应用于整个解决方案, 其它项目将继承此设置.

A 需要将 mysql安装目录的lib 路径 设置到 vc目录的lib

B 需要将 mysql安装目录的inlucde路径设置到vc目录的 包含目录及引用目录

C 原解决方案已含了 vc2008上级目录的lib文件夹,因此不用再行设置。

D 复制libmysql.lib 到某目录下,此目录加入到vc目录的lib

#4 编译vc2008解决方案,  将编译成功的 mysqlpp_d.dll, mysqlpp_d.lib, mysql_excommon.lib 保留。

 

 

至此,我们已准备好了 mysql++所需要的头和库文件   d:\mysql++3.10\ include   及 第#4步生成的几个库文件。

接下来我们将其应用于新的项目中

#1 新建 vc2010项目,  因为只有单个项目,直接在项目属性页里设置vc路径

 

A 包含目录  ,设置为用install.hta生成的路径, 即上述的 d:\mysql++3.10\include.  当然还包括mysql安装目录下的MySQL Server 5.5\include

B 引用目录, 同上

C 库目录, 同上, 并且增加了 mysql安装目录下的 MySQL Server 5.5\lib 目录。 并且 我将第 #4 步编译成功的 几个库文件复制在了 d:\mysql++3.10\ include目录下

 

#2 在项目中增加现有项,加入mysqlpp_d.lib,  mysqlpp_excommon.lib, libmysql.lib

 

#3 将mysqlpp_d.dll 复制到 c:\windows\system32目录下

 

#4 设置项目的link的依赖项, 增加对此三lib文件的依赖 .     项目属性页>链接器>输入>额外依赖项>libmysql.lib;mysqlpp_d.lib;mysqlpp_excommon.lib;后面是项目默认的win32库如kernel32.lib之类。

 

#5 试写简单的测试代码,从 test库的ta表中输出记录.

 

 

// tstMYSQL.cpp : 定义控制台应用程序的入口点。

//

 

#include"stdafx.h"

#include<string>

#include<iostream>

#include<mysql++.h>

 

using namespacemysqlpp;

using namespace std;

 

int _tmain(int argc,_TCHAR* argv[])

{

        mysqlpp::Connection con(false);

 

        con.connect("test","localhost","root","密码",3306);

        cout<<"connect to server ok";

        cout<<'\t'<<endl;

          mysqlpp::Query query = con.query("select name from ta");

       if (mysqlpp::StoreQueryResult res = query.store())

       {

           cout << "the it members as bellow :" << endl;

           for (size_t i = 0; i < res.num_rows(); ++i)

           {

               cout << '\t' << res[i][0] << endl;

           }

       }

 

                  cout<<'\t'<< "show complete, press any key toexit."<<endl;

 

        cin.get();

        con.disconnect();

 

        return 0;

}



至此已完成mysql++访问mysql的测试。


接下来,试用连接池.   mysql++提拱了connectionpool的接口, 我们需要对这个虚类的实现。

以下生成CConnectionPool的派生类来进行实现  (参考mysql++示例文档)


class CConnectionPool : public mysqlpp::ConnectionPool
{
public:

    CConnectionPool(
        const char* db,
        const char* server,
        const char* user,
        const char* password) :
    db_(db ? db : ""),
    server_(server ? server : ""),
    user_(user ? user : ""),
    password_(password ? password : "")
    {
    }

    ~CConnectionPool()
    {
        clear();
    }

    mysqlpp::Connection* grab()
    {
        ++conns_in_use_;
        return mysqlpp::ConnectionPool::grab();
    }

    void release(const mysqlpp::Connection* pc)
    {
        mysqlpp::ConnectionPool::release(pc);
        --conns_in_use_;
    }

protected:
    mysqlpp::Connection* create()
    {
        return new mysqlpp::Connection(
                db_.empty() ? 0 : db_.c_str(),
                server_.empty() ? 0 : server_.c_str(),
                user_.empty() ? 0 : user_.c_str(),
                password_.empty() ? "" : password_.c_str());
    }

    void destroy(mysqlpp::Connection* cp)
    {
        delete cp;
    }

    unsigned int max_idle_time()
    {
        return NULL;
    }

private:
    //Number of connections currently in use
    unsigned int conns_in_use_;

    //connection parameters
    std::string db_, server_, user_, password_;
};

CConnectionPool* poolptr = 0;




调用示例:

  //定义数据库连接信息

      const char* db ="test", *server = "localhost", *user ="root", *pass = "xxxx";

 

 

      //准备连接池

      poolptr = new CConnectionPool(db, server, user, pass);

 

      //从连接池返回一个可用连接

      mysqlpp::ScopedConnection cp(*poolptr, true);

 

      cout<<"MySQL++ Connection Pool Test";

      cout<<char(13)<<"IT members asbellow:"<<char(13)<<endl;

 

      //利用此连接进行操作

      mysqlpp::Query query = cp->query("select name from ta");

 

      if(mysqlpp::StoreQueryResult res = query.store())

       {

             cout << "the it members as bellow :" << endl;

             for (size_t i = 0; i < res.num_rows(); ++i)

             {

                    cout <<char(13) << '\t'<< res[i][0] << endl;

             }

      }

 

      cout<<char(13)<< "show completes, press any key toexit."<<endl;

 

      cin.get();

      cp->disconnect();

 


另外,mysql++里准备了threads.h 用于多线程处理, 可以自行调整 。


关于mysql++的更多操作,请参见mysql++手册。

MT9V034摄像头学习笔记(一)_mt9v034摄像头循迹代码(1) 函数名称:uint8_t SCB_RegRead(uint8_t Device,uint8_t Address,uint16_t *Data)* 函数名称:uint8_t SCB_RegWrite(uint8 Device,uint8 Address,uint16 Data)* 函数名称:uint8 SCCB_SendByte(uint8 Data)* 函数名称:uint8 SCCB_ReadByte(void)* 修改时间:2018年3月4日。* 修改时间:2018年3月4日。 阅读详情

相关推荐

Anthropic发布10款金融AI智能体模板深度解析:重构华尔街工作范式

摘要:2026年5月,Anthropic发布10款金融AI智能体模板,标志着AI从辅助工具升级为"虚拟同事"。这些智能体深度集成到Word、Excel等办公软件中,覆盖投行、商行、资管三大场景的核心工作流,预计可提升效率35-85%。技术架构基于Claude3.5Sonnet模型,具备200K上下文窗口和95%+的财务图表解析准确率,并与彭博等金融数据源直连。发布引发传统金融数据服务商股价下跌,摩根大通等机构则视其为成本优化工具。落地需分四阶段推进,关键在于数据治理和复合型人才培养。未来

yyq916的博客 634

vc连接mysql类_在vc中通过连接池操作mysql(api方式),附c++访问mysql的封装类

在有大量节点访问的数据库设计中,经常要使用到连接池来管理所有的连接.一般方法是:建立两个连接句柄队列,空闲的等待使用的队列和正在使用的队列.当要查询时先从空闲队列中获取一个句柄,插入到正在使用的队列,再用这个句柄做数据库操作,完毕后一定要从使用队列中删除,再插入到空闲队列.代码如下:MySQLMan.h// MySQLMan.h: interface for the CMySQLMan class...

weixin_32100383的博客 152

LinuxCNC 源码解析:从界面开发到硬件交互的实战指南

本文深入解析LinuxCNC源码架构,从用户界面开发到硬件交互的实战指南。涵盖GTK与Tkinter界面开发、HAL硬件抽象层、G代码解析器改造及运动控制核心等关键模块,提供定制化开发技巧与性能优化方案,助力开发者高效掌握数控系统开发。

weixin_27066963的博客 190

mysqlpp::ConnectionPool 源码解读

#if !defined(MYSQLPP_CPOOL_H) #define MYSQLPP_CPOOL_H #include &quot;beemutex.h&quot; #include &amp;lt;list&amp;gt; #include &amp;lt;assert.h&amp;gt; #include &amp;lt;time.h&amp;gt; namespace mysqlpp { #if !defined(DOXY

weixin_40021744的博客 896

数据仓库的复用性:设计和构建一个高复用性的数仓

数据仓库的复用性是指在数据仓库的设计和使用过程中,能够实现数据、模型、流程、工具等多个层面的重复利用,减少重复开发,提高开发效率,降低维护成本,并增强灵活性和可扩展性。

z1941563559的博客 1306

YOLO11训练中的批量大小(Batch Size)选择策略:分析Batch Size对训练速度、显存占用和模型性能的影响

在深度学习训练过程中,Batch Size(批量大小)是一个至关重要的超参数,它指的是单次迭代中用于更新模型权重的样本数量。简单来说,当我们训练神经网络时,不会一次性将所有数据喂给模型,而是将数据分成若干个小批次(batch),每个批次包含一定数量的样本,这个数量就是Batch Size。 Batch Size的核心作用在于平衡训练效率与模型性能。较小的Batch Size意味着每次更新权重时参考的信息较少,可能导致训练过程更加随机,但有时能带来更好的泛化能力;较大的Batch Size则能提供更稳定的梯

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 323

MYSQL++ 多线程使用

7. Using MySQL++ in a Multithreaded Program Prev     Next 7. Using MySQL++ in a Multithreaded Program MySQL++ is not “thread safe” in any meaningful sense. MySQL++ contains very little code...

cplus2009的专栏 2784

Python爬虫实战:爬取国家气象局台风路径数据的完整教程

国家气象局(如中国气象局)一般会在官方网站公布台风的实时路径,包括台风编号、名称、时间点、经纬度、中心气压、最大风速等信息。这些数据以图形和表格的形式呈现,有时以JSON或CSV文件形式下载。爬取这类数据,有助于构建台风数据库、历史路径分析、趋势预测等应用。本文详细介绍了如何通过Python爬取国家气象局发布的台风路径数据,涵盖了数据采集、解析、存储和可视化全流程。通过实践,你可以构建自己的台风数据库,结合机器学习开展路径预测和风险评估等高级分析。后续可结合深度学习技术,实现台风轨迹预测;

2201_76125261的博客 1024

MySQL- Connection Pool(数据库连接池)

MySQL-Druid相关源码解析

CarryBest的博客 3879

orchestrator常见问题汇总

默认的取集群名称的规则为参数决定 ,默认为取主实例 主机名 ,然后按分隔符"."之前的第一段字符为集群别名,这样在集群主库宕机后,新提升的从库的服务器名称为了新的集群名,宕机的主库成为单独的一个集群。1 默认配置文件中设置了匹配规则 ,只有被匹配的主机名才能进行故障恢复,所以该参数需要设置为 "*"3 另外配置文件中还有许多发现,恢复的忽略规则(Ignore) 这些参数也是需要注意的。由于LVS的后端的RS为IP地址,如果直接显示主机名,LVS的接口方法将无法工作。只传入脚本中用到的参数,不要多传入。

DBA之路的博客 829

顶级AI大模型白嫖ChatGPT Plus1个月,0成本薅顶配功能

Chat*** Plus限时免费1个月!原价20美元/月的顶配功能

BUG猿的博客 7271

C/C++连接MYSQL(巨详)

C/C++连接MYSQL(从入门到入土)

Chasingthewinds的博客 7210

AutoSAR配置视频讲解:新建DaVinci工程

AutoSAR实验视频讲解:闪烁一颗LED实验【新建DaVinci工程】 上一篇 | 下一篇 | 总目录 实验架构图 视频本频放在了文末,下图描述了本次实验配置内容在AutoSAR架构中的位置,供大家参考 实验内容 本节课程讲解新建DaVinci工程,听上去新建工程很简单,但是还是需要很多的准备工作和细节。主要内容是新建工程和导入dbc文件和导入arxml文件的方法 主要步骤 新建DaVinci工程 导入.dbc通信矩阵文件 导入Mcal的arxml文件 实验视频2:Mcal配置 提示:版权所在,违

雪云飞星的博客 6275

vc2010访问局域网mysql_VC2010利用MySQL++访问mysql. 及连接池示例

首先下载并安装mysql,我使用的为mysql 5.5版本,安装时注意安装c++的开发包。#1 下载mysql++,解压, 找到install.hta, 修改对应路径,指向vc2008所在路径, 生成mysql++ 的lib 至某路径, 如d:\mysql++3.10\ include#2 打开mysql++ vc2008目录是mysql++_mysqlpp.sln, 升级到vs2010...

weixin_29661797的博客 149

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

VC2010利用MySQL++访问mysql. 及连接池示例

参加这个哥们的博客 http://blog.csdn.net/fcuandy/article/details/6728263 我的一个测试例子,用到了blob; #include #include #include #include #include using namespace mysqlpp; using namespace std; sql_creat

tedious的专栏 3555

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

vc2010 mysql5.7_VC2010利用MySQL++访问mysql. 及连接池示例

参加这个哥们的博客http://www.voidcn.com/article/p-mfnvxzca-cd.html 我的一个测试例子,用到了blob; #include #include #include #include #include using namespace mysqlpp; using namespace std; sql_create_3(sorttest,1,3,sql...

weixin_29947319的博客 96

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

vc2010 mysql_mysql connector c++ (vc2010)

这几天一直在尝试c++连接mysql,尝试了mysql c api以及mysql connector c++ 这2种方法(还有一种方法是使用ado,但是撸主比较懒,还是喜欢比较直接点的方法),然而mysql c api 编译通过但是运行怎么都不行,所以换成了mysql connector c++ 这种方式。接下来我将会记录我在配置vc2010的过程0x00 环境IDE:vc2010c++库:bo...

weixin_35006125的博客 343

mysql connector c++ (vc2010)

  这几天一直在尝试c++连接mysql,尝试了mysql c api以及mysql connector c++ 这2种方法(还有一种方法是使用ado,但是撸主比较懒,还是喜欢比较直接点的方法),然而mysql c api 编译通过但是运行怎么都不行,所以换成了mysql connector c++ 这种方式。接下来我将会记录我在配置vc2010的过程   0x00 环境     ...

ailugong8410的博客 225

vc2010 mysql5.7_VC++2010配置使用MySQL5.6

0、前提安装后的文件概览编译器: VC++2010MySQL版本:MySQL5.6.19 for win64Connector版本:connector c++ 1.1.3在VS2010下配置使用MySQL1、配置头文件项目属性--VC++目录--包含目录2、配置库文件在connector c++ 1.1.3lib目录下有两个目录:debug目录 和 opt目录libdebug目录libopt...

weixin_42306699的博客 255

vc mysql配置_VC++2010配置使用MySQL5.6

0、前提安装后的文件概览编译器: VC++2010MySQL版本:MySQL5.6.19 for win64Connector版本:connector c++ 1.1.3在VS2010下配置使用MySQL1、配置头文件项目属性--VC++目录--包含目录2、配置库文件在connector c++ 1.1.3\lib目录下有两个目录:debug目录 和 opt目录lib\debug目录lib\...

weixin_29418485的博客 630

mysql vc撑血_VC与MYSQL连接

你的位置:问答吧-> MySQL-> 问题详情VC与MYSQL连接本人用VC开发现在要和MYSQL一起用,在网上找了很多关于VC连接MYSQL的,但是非常少即使有也不明确.今天我就把我怎样一步一步的连接MYSQL的发上来希望能对需要的朋友有帮助.新建一个VC工程,在里面包含这样的头文件#include "win...

weixin_39997957的博客 143

visual studio连接mysql_实现Visual Studio 2010连接到MySql

-------------------------------------------操作系统:winxp-32bit数据库:MySQL Server 5.5(安装路径:D:\Program Files\MySQL\MySQL Server 5.5)IDE: Microsoft Visual Studio 2010 untimate/Professional(以上东西都是完整安装的)-------...

weixin_28883589的博客 1388

Vs2010连接Mysql数据库方法

-------------------------------------------  操作系统:winxp-32bit  数据库:MySQL Server 5.5  (安装路径:D:\ProgramFiles\MySQL\MySQL Server 5.5)  IDE: Microsoft Visual Studio 2010 untimate/Professional  (以上东西都

开心 5万+

VS2010联接Mysql数据库方法

Vs2010联接Mysql数据库方法 Vs2010连接Mysql数据库方法    -------------------------------------------  操作系统:winxp-32bit  数据库:MySQL Server 5.5  (安装路径:D:\ProgramFiles\MySQL\MySQL Server 5.5)  IDE: Microsoft Visu

每天问问自己,你今天努力了吗? 1034

vc++l调用64位的mysql_VC++2010配置使用MySQL5.6

0、前提安装后的文件概览编译器: VC++2010MySQL版本:MySQL5.6.19 for win64Connector版本:connector c++ 1.1.3在VS2010下配置使用MySQL1、配置头文件项目属性--VC++目录--包含目录2、配置库文件在connector c++ 1.1.3\lib目录下有两个目录:debug目录 和 opt目录lib\debug目录lib\...

weixin_30058099的博客 186
上一篇: 《女孩梦三十》
fcuandy
博客等级 码龄23年 780粉丝 32原创
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值