一般来说,VS下采用微软自身的SQL Server是比较常见的做法,但SQL Server只适合学习,不适合真正应用。在此,我们选择MySQL作为后台数据库。C++语言本身并没有提供访问数据库的东西,一般使用访问数据库的驱动。微软提供一个ODBC的标准API,用于屏蔽各数据库底层细节,提供统一接口访问各个数据库。在MySQL官网上也能下到一个叫"Connector/ODBC"的driver,但"Connector/C++"的driver应该比ODBC要效率高些。

下载并安装以下软件(官网下载)

  • MySQL Connector:mysql-connector-c++-1.1.4-win32.msi
  • MySQL Server:mysql-5.1.73-win32.msi
  • MySQL Workbench:mysql-workbench-community-6.2.3-win32.msi(可视化组件,不推荐)

说明:

  • MySQL官网:http://www.mysql.com;
  • MySQL Connector是C++连接数据库的引擎,起着C++和数据库之间桥梁的作用;MySQL Server即MySQL服务器;MySQL Workbench为MySQL的可视化组件,个人感觉不太好用,可使用Navicat for MySQL或者phpMyAdmin(不错哦);
  • 强烈推荐:C++的MySQL数据库连接引擎使用MySQL官网的MySQL Connector,MySQL服务器和可视化组件使用WampServer(Windows)

测试(使用)MySQL

  在“运行”中输入cmd,打开命令行窗口(或点击“开始”->MySQL->MySQL 5.1->MySQL Command Line Client),输入如下命令,再输入密码(默认密码为空),即可进入MySql;

mysql -u root -p

  查看当前已有的数据库:

mysql> show databases;

  创建数据库:

mysql> create database DBName;

  使用数据库(这句不能加分号):

mysql> use DBName

  查看已有的表:

mysql> show tables;

  创建表:

mysql> create table TableName( id INT, name CHAR(20));

  插入数据:

mysql> insert into TableName(id, name) values(1001, 'google');
mysql> insert into TableName(id, name) values(1002, 'kingsoft');
mysql> insert into TableName(id, name) values(1003, 'firefox');

  说明:

  • SQL语句末尾加上';'表示立即执行当前语句;
  • 对数据库的操作无非四种:增、删、改、查;

常用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

用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目录下

为项目源文件添加源代码:

#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 DBName");// 查询result = state->executeQuery("select * from TableName ");//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

  MySQL插入变量代码:

//增加记录
short int num=10;
//char string[10];
char sqlstring[500];
while(num--)
{//itoa(num,string,10);sprintf(sqlstring,"insert into test1 values(\"%d\",\"M\")",num);state->executeUpdate(sqlstring);
}

五、Data Modeling

使用MySQL Workbench的Data Modeling的open existing EER model来打开数据库实例sakila中的sakila.mwb文件,如下图:

通常,我们使用MySQL Workbench的Data Modeling从建模开始来设计数据库,在建模完成后导出为sql语句,然后再将sql导入到数据库,来完成数据库的创建。

注:EER=Extended Entity-Relationship,即扩展实体-关系模型,是当前最新的一种数据库模型。

转载于:https://www.cnblogs.com/gaohongchen01/p/4007118.html

C++连接MySQL(Windows)相关推荐

  1. C语言连接MySQL(Windows)

    MySQL的安装&&C语言连接MySQL 一.MySQL的安装 1.MySQL安装包 2.MySQL的安装 3.MySQL字符集的配置(可以解决数据库无法存入中文的问题) C语言连接M ...

  2. 连接MySQL数据库时常见故障问题的分析与解决

    连接MySQL数据库时常见故障问题的分析与解决 初学的mysql网友好象经常会碰到mysql无法连接的错误.特开贴收集这样问题的现象和原因. 先自己扔块砖头出来. 归纳如下: 故障现象 : 无法连接 ...

  3. Windows 下连接mysql工具NavicatForMysql

    Windows 下连接mysql工具NavicatForMysql 一.软件介绍 Navicat for MySQL是一款强大的 MySQL 数据库管理和开发工具,它为专业开发者提供了一套强大的足够尖 ...

  4. mysql安装连接测试c_C连接MySQL数据库开发之Windows环境搭建及测试_MySQL

    一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:/Program Files/MySQL/MySQL Server 5.5二.配置工程环境 首 ...

  5. windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法

    windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法 参考文章: (1)windows下本地或者远程连接MYSQL数据库,报1130错误的解决方法 (2)https://www. ...

  6. windows 2008 r2 mysql 速度很慢_Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法...

    对比下面两个脚本的速度: Windows 7 用 localhost 连接本地 MySQL,速度会很慢. Windows 7 用 127.0.0.1 连接本地 MySQL,速度则是正常的. my.in ...

  7. Python3 pymysql连接mysql数据库 windows

    pymsql是一个不错的连接mysql的Python类库 我比较喜欢把知识点注释在我的code里,直接上代码吧,不需要要多解释说明. import pymysql# unix_socket='/tmp ...

  8. C连接MySQL数据库开发之Windows环境配置及测试

    一.开发环境 Win8.1 64位.VS2013.MySQL5.5.3764位 MySQL安装目录为:C:\Program Files\MySQL\MySQL Server 5.5 二.配置工程环境 ...

  9. pydev集成mysql_【Python】Windows平台下Python、Pydev连接Mysql数据库

    Mysql数据库是跨平台的,不是说Python一定就要连接Mongodb. Python连接Mysql数据库是非常easy的. 首先,你要配置好Python的开发环境,详见<[Python]Wi ...

  10. windows中安装64位MySQL及连接MySQL和重置MySQL密码

    一.安装 1.下载64位,解压 2.配置系统环境变量,我们去系统环境变量的path里添加一个mysql的配置,指向mysql的bin目录 复制解压后的mysql到C盘或者其他磁盘下 3.配置初始化的m ...

最新文章

  1. ARM汇编语言实现peek()_ARM汇编之访问C语言结构体数据
  2. winform datagridview 重新绘制datagridview的边框。
  3. 存储类型_malloc_typedef小结
  4. Mysql安装问题汇总
  5. scatter python_Python scatter详解
  6. 【转】STM32中的抢占优先级、响应优先级概念
  7. python的类是什么_Python类(class)
  8. [机器学习] focal loss:解决样本不平衡的一种通用方案
  9. 时间字符串转时间戳_Python3日期与时间戳转换的几种方法
  10. myqq框架 python插件
  11. 开源3D建模软件FreeCAD基础介绍与入门
  12. OSI和TCP/IP网络参考模型傻傻分不清?图解和各层作用详细说明
  13. 不用root也可以修改智能手机中应用文字大小,顺便也可以修改手机分辨率
  14. PHP之 微信支付 查询企业付款银行卡API 或 查询给企业付款是否到账 功能业务处理
  15. 甲乙两列客车的长分别为150m和200m,它们相向行驶在平行的轨道上,已知甲车上某乘客测得乙车在他窗口外经过的时间为10秒,那么,乙车上的乘客看见甲车在他窗口外经过的时间是()
  16. 云服务器的防火墙有什么作用?
  17. 苹果应用商店审核_苹果应用商店审核流程更新:给开发者申诉的机会
  18. 【热门框架】Maven依赖传递,可选依赖以及排除依赖指的是什么?有什么意义?
  19. 解决animate.css在谷歌浏览器下无效,动画没了的问题
  20. kafka架构与原理 ,消息的可靠性与一致性幂等性,数据存储、zookeeper、使用场景

热门文章

  1. 阿里云开源编程马拉松入围项目
  2. 浅谈-LINUX 操作系统启动过程
  3. 统一的Ajax提交封装,一劳永逸好工具(带跨域处理)
  4. UNIX网络编程——使用线程的TCP回射服务器程序
  5. sendRedirec forward
  6. python 面试题(2)--- 字符串连接问题
  7. 软件测试 学习之路 linux vim编辑器
  8. Shadow DOM的理解
  9. 超图Cesium量算
  10. wpf开源ui引用步骤_完善开源产品策略的6个步骤