C++操作mysql方法總結(3)[轉載]

來源:互聯網
上載者:User

標籤:style   blog   http   color   io   os   使用   ar   strong   

C++通過mysql++操作mysql的方式

 

使用vs2013和64位的msql 5.6.16進行操作

項目中使用的資料庫名和表資料請參考C++操作mysql方法總結(1)中的介紹

 

Mysql++ 是官方發布的、一個為MySQL設計的C++語言的API。Mysql++為Mysql的C-Api的再次封裝,它用STL(Standard Template Language)開發並編寫,並為C++開發人員提供像操作STL容器一樣方便的操作資料庫的一套機制。

http://tangentsoft.net/mysql++/

 

一、Mysql++的編譯(VS2013)

1、開啟mysql  -3.2.1下的vc2008中mysql++.sln,會提示需要進行升級,點擊確定即可

 

2、在開啟的眾多項目中,大多數都是樣本,我們只需編譯mysqlpp,擷取產生所需的mysqlpp_d.dll和mysqlpp_d.lib(debug下)

或mysqlpp.dll和mysqlpp.lib(release下)

 

3、將D:\Program Files\MySQL\MySQL Server 5.6\include添加到mysqlpp項目的包含目錄中(根據具體路徑而定)

 

4、將D:\Program Files\MySQL\MySQL Server 5.6\lib添加到mysqlpp項目的庫目錄中(根據具體路徑而定)

 

5、確保libmysql.lib已經添加到mysqlpp項目的附加依賴項中

 

6、如果使用的mysql是64位的,還需要將項目的解決方案平台由win32改成x64

 

7、將D:\Program Files\MySQL\MySQL Server 5.6\lib(根據具體路徑而定)下的libmysql.dll複製到項目中去,和.cpp,.h檔案位於同一路徑下

 

8、編譯mysqlpp,產生所需的mysqlpp_d.dll和mysqlpp_d.lib(debug下)或mysqlpp.dll和mysqlpp.lib(release下)

 

9、利用mysql++-3.2.1中的install.hta將所有include的檔案一個地方,便於管理

在這裡為了D:\mysqllib\mysqlplus\include

同時將mysqlpp_d.dll和mysqlpp_d.lib,mysqlpp.dll和mysqlpp.lib放到了D:\mysqllib下

 

二、通過Mysql++進行操作mysql

1、建立一個空項目

 

2、將D:\mysqllib\mysqlplus\include和D:\Program Files\MySQL\MySQL Server 5.6\include添加到項目的包含目錄中(根據具體路徑而定)

(#mysql++中的mysql++.h include了MySQL Server 5.6中的mysql_version.h)

 

3、將D:\mysqllib添加到項目的庫目錄中(根據具體路徑而定)

 

 

 

 

4、添加mysqlpp.lib至附加依賴項中

(*3.4步也可以在程式碼的開始處加上#pragma comment(lib,"D:\\mysqllib\\mysqlpp.lib") 來匯入mysqlpp.lib)

 

5、如果使用的mysql是64位的,還需要將項目的解決方案平台由win32改成x64

 

6、將D:\mysqllib(根據具體路徑而定)下的mysqlpp.dll和D:\Program Files\MySQL\MySQL Server 5.6\lib(根據具體路徑而定)

下的libmysql.dll複製到項目中去,和.cpp,.h檔案位於同一路徑下

 

至此,相關配置全部完成

程式碼

main.cpp

#include <mysql++.h>#include <iostream>#include <iomanip>using namespace std;int main(int argc, char *argv[]){    mysqlpp::Connection conn(false);    mysqlpp::SetCharsetNameOption *opt =new  mysqlpp::SetCharsetNameOption("gbk");    conn.set_option(opt);    if (conn.connect("booktik",                    "localhost",                    "root",                    "123456"))    {        conn.query("set names ‘gbk‘ ");        mysqlpp::Query query = conn.query("select * from book");        mysqlpp::UseQueryResult res = query.use();        if (res)        {            while (mysqlpp::Row row = res.fetch_row())            {                 cout <<setw(9)<<"BookName:"<< row["bookname"] << endl;                 cout << setw(9)<<"Size:" << row["size"] << endl;            }        }        else         {            cerr << "Failed to get item list: " << query.error() << endl;            return 1;        }    }    else    {        cerr << "DB connection failed: " << conn.error() << endl;        return 1;    }    system("pause");}

 

 

運行結果

C++操作mysql方法總結(3)[轉載]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.