程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql connector c++ (vc2010),connectorvc2010

mysql connector c++ (vc2010),connectorvc2010

編輯:MySQL綜合教程

mysql connector c++ (vc2010),connectorvc2010


  這幾天一直在嘗試c++連接mysql,嘗試了mysql c api以及mysql connector c++ 這2種方法(還有一種方法是使用ado,但是撸主比較懶,還是喜歡比較直接點的方法),然而mysql c api 編譯通過但是運行怎麼都不行,所以換成了mysql connector c++ 這種方式。接下來我將會記錄我在配置vc2010的過程

  0x00  環境

    IDE:vc2010

    c++庫:boost(使用mysql connector c++需要先配置boost庫),mysql connector c++ 1.1.5

    數據庫:mysql5.6

  0x01  安裝boost庫以及mysql connector c++

    首先下載boost庫以及mysql connector c++(這2項都能再各自的官網上下到,就不提供鏈接了)

    安裝boost庫,下載完boost-1.58.zip ,解壓縮後運行bootstrap.bat,運行完成後會多出b2.exe以及bjam.exe這2個可運行程序,這裡我們只需接著運行bjam.exe(這個程序運行的時間會比較長,可以看一集銀魂的說^_^),結束後你可以把總的文件貼到你需要的文件夾內。

    至於mysql connector c++,我直接下載的是.msi安裝文件,安裝即可,默認目錄為C:\Program Files\MySQL\MySQL Connector C++ 1.1.5

    至此需要的文件已安裝完畢,接下來就是配置vc2010了。

  0x02  配置vc2010

    1.首先創建一個空的工程,並添加一個cpp文件。

    2.為當前工程添加目錄

      找到配置選項頁:

        首先我們需要確認你的mysql版本以及mysql connector c++的版本是32位還是64位,如果是均為64位,我們需要將vc2010的平台設置為64位的,不然 編譯無法通過。

        Project-->Properties選項頁中有Pllatform這個選項,默認為一開始創建的32位,點擊Configuration Manager修改為64位

        Project-->Properties-->C/C++  選擇General 裡的Additional Include Directories   添加mysql connector c++ 的include 文件夾以及boost的文件夾

        

        Project-->Properties-->Linker  選擇General 裡的Additional Library Directories   添加mysql connector c++ 的lib 文件夾以及boost的libs文件夾

        

        Project-->Properties-->Linker  選擇Input 裡的Additional Dependencies  添加mysqlcppconn.lib

        

        至此我們已經完成了vc2010的配置

   0x03  驗證

    接下來就是驗證環境是否已成功配置,我們可以寫入以下的測試代碼(首先要確保mysql有測試的database)

#include <iostream>
#include "mysql_driver.h"
#include "mysql_connection.h"
#include "cppconn/driver.h"
#include "cppconn/statement.h"
#include "cppconn/prepared_statement.h"
#include "cppconn/metadata.h"
#include "cppconn/exception.h"

using namespace std;
using namespace sql;

int main()
{
    sql::mysql::MySQL_Driver *my_driver = 0;
    sql::Connection *connect = 0;

    try//嘗試連接testdb數據庫
    {
        my_driver = sql::mysql::get_mysql_driver_instance();
        connect = my_driver->connect("tcp://localhost:3306/testdb", "root", "12345678");
        cout << "connect success!" << endl;
    }
    catch (exception e)//連接失敗
    {
        cout << "connect fail!" << endl;
    }
    //取出示例數據
    sql::Statement* stat = connect->createStatement();
    stat->execute("set names 'gbk'");
    ResultSet *res;
    res = stat->executeQuery("SELECT * FROM user");
    while (res->next())
    {
        cout << "ID:" << res->getString("id") << endl;
        cout << "NAME:" << res->getString("name") << endl;
    }
    if (connect != 0)//釋放連接
    {
        delete connect;
    }
    getchar();
}

  0x04 結尾

    mysql c api估計也是版本問題,編譯明明能通過,however, there is no egg use。所以遇到實在無法解決的問題可以嘗試著換另一種方法(技術太渣,ouduok)

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved