C++串連MySQL

來源:互聯網
上載者:User

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

  一般來說,VS下採用微軟自身的SQL Server是比較常見的做法,但SQL Server只適合學習,不適合真正應用。在此,我們選擇MySQL作為後台資料庫。C++語言本身並沒有提供訪問資料庫的東西,一般使用訪問資料庫的驅動。微軟提供一個ODBC的標準API,用於屏蔽各資料庫底層細節,提供統一介面訪問各個資料庫。在MySQL官網上也能下到一個叫"Connector/ODBC"的driver,但"Connector/C++"的driver應該比ODBC要效率高些。

一、下載並安裝以下軟體(官網下載):

MySQL Server:mysql-5.1.73-win32.msi

MySQL Connector:mysql-connector-c++-1.1.4-win32.msi

MySQL Workbench:mysql-workbench-community-6.2.3-win32.msi(可視化組件)

註:MySQL官網:http://www.mysql.com;可嘗試WampServer+VS2010(C++)

二、用VS2010建立一個控制項目,並配置其屬性:

1、配置屬性-->C/C++-->常規-->附加元件封裝含目錄:

C:\Program Files (x86)\MySQL\MySQL Connector C++ 1.1.4\include;C:\Program Files (x86)\MySQL\MySQL Connector C++ 1.1.4\include\cppconn;

2、配置屬性-->連結器-->常規-->附加庫目錄:

C:\Program Files (x86)\MySQL\MySQL Connector C++ 1.1.4\lib\opt;C:\Program Files (x86)\MySQL\MySQL Connector C++ 1.1.4\lib\debug;

3、配置屬性-->連結器-->輸入-->附加依賴項:

mysqlcppconn.lib;mysqlcppconn-static.lib

4、將C:\Program Files (x86)\MySQL\MySQL Connector C++ 1.1.4\lib\opt下的mysqlcppconn.dll檔案複製到系統驅動盤.windows\system32目錄下

三、在mysql建一張表(事先安裝好MySQL Server):

在“運行”中輸入cmd,開啟命令列視窗(或點擊“開始”->MySQL->MySQL 5.1->MySQL Command Line Client),輸入mysql -u root -p,再輸入密碼(預設密碼為空白);

查看當前已有的資料庫:mysql> show databases;
建立資料庫:mysql> create database test1;
使用資料庫(這句不能加分號):mysql> use test1
查看已有的表:mysql> show tables;
建立表:mysql> create table test1( id INT, name CHAR(20));
插入資料:
  mysql> insert into test1(id, name) values(1001, ‘google‘);
  mysql> insert into test1(id, name) values(1002, ‘kingsoft‘);
  mysql> insert into test1(id, name) values(1003, ‘firefox‘);

註:SQL語句末尾加上‘;‘表示立即執行當前語句,操作資料庫可使用可視化軟體MySQL Workbench

常用MySQL命令:

//查看MySQL版本mysql> select version();//顯示所有資料庫mysql> show databases;//使用資料庫mysql> use database_name;//顯示所有資料表mysql> show tables;//顯示資料表結構mysql> describe table_name;//建立資料庫mysql> create database database_name;//刪除資料庫mysql> drop database database_name;//建立資料表mysql> use database_name;mysql> create table table_name (欄位名 VARCHAR(20), 欄位名 CHAR(1));//刪除資料表mysql> drop table table_name;//查詢記錄mysql> select * from table_name;//匯入.sql檔案mysql> use database_name;mysql> source c:/mysql.sql//修改root密碼mysql> UPDATE mysql.user SET password=PASSWORD(‘新密碼‘) WHERE User=‘root‘;//退出mysql> quit

四、為項目源檔案添加原始碼:

#include <iostream>#include <mysql_driver.h>#include <mysql_connection.h>#include <cppconn/driver.h>#include <cppconn/exception.h>#include <cppconn/resultset.h>#include <cppconn/statement.h>#include <cppconn/prepared_statement.h>using namespace sql;using namespace std;void RunConnectMySQL(){    mysql::MySQL_Driver *driver;    Connection *con;    Statement *state;    ResultSet *result;    // 初始化驅動    driver = sql::mysql::get_mysql_driver_instance();    // 建立連結    con = driver->connect("tcp://127.0.0.1:3306", "root", "");    state = con->createStatement();    state->execute("use test1");    // 查詢    result = state->executeQuery("select * from test1 ");//where id < 1006    // 輸出查詢    while(result->next())    {        int id = result->getInt("ID");        string name = result->getString("name");        cout << id << " : "<< name << endl;    }    delete state;    delete con;}int main(){    RunConnectMySQL();    getchar();    return 0;}

編譯並運行,結果如下:

註:編譯時間可能遇到有關Boost的錯誤,這時還要配置Boost庫,請參考:http://www.cnblogs.com/gaohongchen01/p/4006920.html

C++串連MySQL

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.