我的编程空间,编程开发者的网络收藏夹
学习永远不晚

[Mysql | C++] C++中使用Mysql数据库

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

[Mysql | C++] C++中使用Mysql数据库

目录

一、环境安装

二、环境配置

 三、编写程序


一、环境安装

1.Mysql 8.0

2.Microsoft Visual Studio 2017

注意:vs2019版本及以下才支持Mysql,若使用高版本可以使用SQL Server

二、环境配置

检查Mysql 8.0的安装文件夹中是否包含include和lib文件夹,若不存在,需要重新安装

打开项目属性页面

[调试]中的[环境]改为bin文件夹地址

4.将[c/c++]中的[常规][附加包含目录]改为include文件夹地址

5.将[链接器]下的[常规]中的[附加库目录]改为lib文件夹地址

6.将[链接器]下的[输入]中的[附加依赖项]改为libmysql.lib的地址

7.根据自己的系统位数(64/32)添加libmysql.dll:

(1)从这位博主的网盘获取动态链接库:

32位/64位 libmysql.dll和libmysql.lib下载_libmysql.dll下载_不吃水果的太空人的博客-CSDN博客

(2)以64位为例(我的是64位),把下载好的64位dll放到system32文件夹(存放64位文件),把32位dll放到sysWOW64文件夹(存放32位文件)

(3)在Mysql 8.0的安装文件夹中打开bin,复制libcrypto-1_1-x64.dll和libssl-1_1-x64.dll两个动态链接库,粘贴到system32文件夹中

(4)把64位libmysql.dll放到cpp同目录下

注意:这一步(7)是为了解决我遇到的两个问题,一个是缺少libcrypto-1_1-x64.dll和libssl-1_1-x64.dll两个动态链接库;另一个是“无法定位程序于xxx”。

将运行平台改为x64,完成

 三、编写程序

#define _CRT_SECURE_NO_WARNINGS#include "bits/stdc++.h"#include "mysql.h"class Mysql {private:MYSQL mysql;MYSQL_RES* res;public:Mysql() {res = nullptr;mysql_init(&mysql); // initmysql_options(&mysql, MYSQL_SET_CHARSET_NAME, "gbk"); // 设置编码}void connectToDatabase(const char* password) {// 函数参数自行百度,其中"mysql"是mysql原来就有的数据库,可以暂时连接到它if (mysql_real_connect(&mysql, "localhost", "root", password, "mysql", 3306, NULL, 0) != NULL) {std::cout << "mysql连接成功" << "\n";}else {std::cout << "mysql连接失败" << "\n";}}void createDatabase(std::string name) {std::string query = "create database if not exists " + name + ";";if (mysql_query(&mysql, query.c_str()) == 0) { // 0 是能执行std::cout << name << "创建成功" << "\n";}else {std::cout << name << "已存在" << "\n";}}void useDatabase(std::string name) {std::string query = "use " + name + ";";if (mysql_query(&mysql, query.c_str()) == 0) {std::cout << "正在使用" + name << "\n";}else {std::cout << "使用失败" << "\n";}}void writeInfo(std::string query) {if (mysql_query(&mysql, query.c_str()) == 1) {std::cout << "错误原因" << mysql_error(&mysql) << "\n";return;}res = mysql_store_result(&mysql);int field_num = mysql_num_fields(res);MYSQL_FIELD *field_name = mysql_fetch_fields(res);std::cout << "\n";for (int i = 0; i < field_num; ++i) {std::cout << field_name[i].name << " \n"[i == field_num - 1];}MYSQL_ROW row;while (row = mysql_fetch_row(res)) {for (int i = 0; i < field_num; ++i) {if (row[i] != NULL) {if (strlen(row[i]) > 0) std::cout << row[i] << " ";else std::cout << "NULL";}else std::cout << "NULL" << " ";}std::cout << "\n";}std::cout << "\n";}};signed main() {Mysql op;// 连接到默认数据库op.connectToDatabase("010214");// 创建数据库op.createDatabase("newDatabase");// 使用数据库op.useDatabase("newDatabase");// ......}

注意:

代码完成了Mysql类的实现,各个函数自行百度。

在 useDatabase() 调用后,就可以根据自己的需要创建表,插入数据等等操作,核心思想就是用 mysql_query(string) 发起请求。

writeInfo() 实现了结果集的输出。

如果插入的数据量很大,可以自定义结构体莱实现insert,如下:

(具体情况见专栏第二篇https://blog.csdn.net/joyride_run/article/details/130496869

#define _CRT_SECURE_NO_WARNINGS#include "bits/stdc++.h"struct TableS {std::string sno, sname, city;int status;TableS() = default;TableS(std::string sno, std::string sname, int status, std::string city) {this->sno = sno;this->sname = sname;this->status = status;this->city = city;}static std::string query(TableS t) {std::string query = "insert into s(sno, sname, status, city) values('" + t.sno + "', '" + t.sname + "', " + std::to_string(t.status) + ", '" + t.city + "');";return query;}static void cinData(std::string filePath, std::vector  &v) {std::cout << filePath << "\n";FILE *fp = fopen(filePath.c_str(), "r");char a[20], b[20], d[20]; int c;// 会有编码问题,需要进行转码while (fscanf(fp, "%s %s %d %s", a, b, &c, d) != EOF) {v.push_back(TableS(std::string(a), std::string(b), c, std::string(d)));}fclose(fp);}};

C++在Mysql中的基本使用就是这些,欢迎纠错。

来源地址:https://blog.csdn.net/joyride_run/article/details/130403835

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

[Mysql | C++] C++中使用Mysql数据库

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

C++连接并使用MySQL数据库

本文实例为大家分享了C++连接并使用MySQL数据库的具体代码,供大家参考,具体内容如下 1. C++连接MySQL数据库 首先在VS里新建C++工程项目,右键工程项目名,选择属性。选择平台选择选择配置管理器选择新建下拉菜单中选择X64 .
2022-05-24

C++如何mysql数据库

本篇文章为大家展示了C++如何mysql数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。(一)通过ADO连接MySql数据库1、通过ADO连接MySql数据库,首先得安装MyODBC服务器程序。
2023-06-17

【MySQL】C/C++代码操作数据库

简单尝试使用c语言的库对mysql的数据进行增删改查 1.新增数据库和表 刚开始数据库没有设定密码和用户,直接用root用户登录 mysql -uroot; 创建一个hello数据库,并进入这个数据库 create database he
2023-08-19

C++中怎么连接MySqL数据库

这期内容当中小编将会给大家带来有关C++中怎么连接MySqL数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。C++连接MySqL数据库代码示例:#include < stdio.h> #inclu
2023-06-17

C# 中怎么利用ODBC访问MySQL数据库

C# 中怎么利用ODBC访问MySQL数据库,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1.安装Microsoft ODBC.net:我安装的是mysql-c
2023-06-17

c#怎么访问mysql数据库

要访问MySQL数据库,可以使用MySQL官方提供的MySQL Connector/Net库。以下是使用C#连接MySQL数据库的一般步骤:在Visual Studio中创建一个新的C#控制台应用程序项目。在项目中右键单击“引用”并选择“
c#怎么访问mysql数据库
2024-04-18

c++怎么连接mysql数据库

要连接MySQL数据库,可以使用MySQL提供的MySQL C++ Connector或者第三方库来实现。1、使用MySQL C++ ConnectorMySQL C++ Connector是MySQL官方提供的用于C++语言的数据库连接
c++怎么连接mysql数据库
2024-04-09

C#如何连接MySQL数据库

本文章是建立在已经安装MySQL数据库的前提,默认安装在C:\Program Files (x86)\MySQL,建议在安装时选中Connector.NET 6.9的安装,里面有MySQL与C#连接的动态链接库。帮助文档C:\Program
2022-05-24

c++怎么访问mysql数据库

在C++中访问MySQL数据库通常需要使用MySQL官方提供的MySQL C API。以下是一些基本步骤来访问MySQL数据库:安装MySQL C API库:首先要确保你的系统中已经安装了MySQL C API库,你可以从MySQL官方网站
c++怎么访问mysql数据库
2024-04-18

编程热搜

目录