日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

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

發(fā)布時間:2025/3/15 数据库 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vc2010访问局域网mysql_VC2010利用MySQL++访问mysql. 及连接池示例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

首先下載并安裝mysql,我使用的為mysql 5.5版本,安裝時注意安裝c++的開發(fā)包。

#1? 下載mysql++,解壓,? 找到install.hta, 修改對應路徑,指向vc2008所在路徑,? 生成mysql++ 的lib 至某路徑, 如?d:\mysql++3.10\ include

#2? 打開mysql++ vc2008目錄是mysql++_mysqlpp.sln, 升級到vs2010版本, 因為vs2010去掉了針對整個解決方案修改vc目錄的功能(只能單個項目修改,所以原項目編譯不過)

#3? 視圖》其它窗口》隨意選擇一個項目 ,打開 win32….user節(jié)點, 設置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

#include

#include

using namespacemysqlpp;

using namespace std;

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

{

mysqlpp::Connection con(false);

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

cout<

cout<

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<

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<

cout<

//利用此連接進行操作

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 <

}

}

cout<

cin.get();

cp->disconnect();

另外,mysql++里準備了threads.h 用于多線程處理, 可以自行調整 。

關于mysql++的更多操作,請參見mysql++手冊。

總結

以上是生活随笔為你收集整理的vc2010访问局域网mysql_VC2010利用MySQL++访问mysql. 及连接池示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。