首页 > 代码库 > C++连接MySQL

C++连接MySQL

  一般来说,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