笨蛋学C++之 C++连接数据库

笨蛋学C++ 之 VS2019使用C++连接数据库

  • 创建数据库
    • SQL语句
    • VS2019
        • 选择空项目,点击下一步创建
        • 输入项目名称,点击创建
        • 创建成功
        • 点击新建项创建源文件
        • 因为mysql是64位,此时的c++项目是86位,所以这里需要将项目修改为x64位
        • 点击项目 -> 0501-test 属性 -> 将配置和平台修改为Debug、x64
        • 此时的软件页面也要修改为Debug、x64
        • 修改**C/C++**下的**常规**模块的**附加包含目录**的项目的include文件位置,点击项目 -> 0501-test 属性 -> C/C++ -> 附加包含目录 -> 点击编辑 -> 将自己mysql安装的include路径复制到窗口中 -> 点击确定
        • 点击项目 -> 0501-test 属性 -> 链接器 -> 常规 -> 附加库目录 -> 点击编辑 -> 将自己mysql安装的lib路径复制到窗口中 -> 点击确定
        • 点击项目 -> 0501-test 属性 -> 链接器 -> 输入 -> 附加依赖项 -> 点击编辑 -> 输入**libmysql.lib** -> 点击确定
        • 点击应用 -> 点击确定
        • 修改数据库密码、数据库名,测试连接
        • 连接成功,成功插入数据

创建数据库

SQL语句

DROP TABLE IF EXISTS `test`;
CREATE TABLE `test`  (
  `id` int NOT NULL,
  `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
---------------------------------------------------------------
INSERT INTO `test` VALUES (1, 'jack');
INSERT INTO `test` VALUES (2, 'tom');
INSERT INTO `test` VALUES (3, 'smith');

VS2019

  • 选择空项目,点击下一步创建

在这里插入图片描述

  • 输入项目名称,点击创建

在这里插入图片描述

  • 创建成功

在这里插入图片描述

  • 点击新建项创建源文件

在这里插入图片描述
在这里插入图片描述

  • 因为mysql是64位,此时的c++项目是86位,所以这里需要将项目修改为x64位

在这里插入图片描述

  • 点击项目 -> 0501-test 属性 -> 将配置和平台修改为Debug、x64

在这里插入图片描述

  • 此时的软件页面也要修改为Debug、x64

在这里插入图片描述

  • 修改C/C++下的常规模块的附加包含目录的项目的include文件位置,点击项目 -> 0501-test 属性 -> C/C++ -> 附加包含目录 -> 点击编辑 -> 将自己mysql安装的include路径复制到窗口中 -> 点击确定

在这里插入图片描述

  • 点击项目 -> 0501-test 属性 -> 链接器 -> 常规 -> 附加库目录 -> 点击编辑 -> 将自己mysql安装的lib路径复制到窗口中 -> 点击确定

在这里插入图片描述

  • 点击项目 -> 0501-test 属性 -> 链接器 -> 输入 -> 附加依赖项 -> 点击编辑 -> 输入libmysql.lib -> 点击确定

在这里插入图片描述

  • 点击应用 -> 点击确定

在这里插入图片描述

  • D:\MySQL\mysql\Install Directory\lib 下的libmysql.dll文件复制到 C:\Windows\System32
    在这里插入图片描述
  • 修改数据库密码、数据库名,测试连接
#include <mysql.h>
#include <iostream>
#include <cstring> // 包含字符串操作相关的头文件
using namespace std;

const char* host = "127.0.0.1";
const char* user = "root";
const char* password = "P@ssw0rd";
const char* database_name = "c++test";
const int port = 3306;

typedef struct Test {
    int id;
    string name;
} Test;

int main(void) {
    // 设置链接
    MYSQL* con = mysql_init(NULL);
    // 设置编码
    mysql_options(con, MYSQL_SET_CHARSET_NAME, "GBK");
    if (!mysql_real_connect(con, host, user, password, database_name, port, NULL, 0)) {
        cerr << "Failed to connect to database Error: " << mysql_error(con) << endl;
        return -1;
    }

    Test test{ 4,"wangwu" };
    char sql[1024];
    sprintf_s(sql, sizeof(sql), "INSERT INTO test (id,name) VALUES (%d,'%s')", test.id, test.name.c_str());

    if (mysql_query(con, sql)) {
        cerr << "Failed to insert to database Error: " << mysql_error(con) << endl;
        return -1;
    }

    mysql_close(con);
    return 0;
}
  • 连接成功,成功插入数据

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/588271.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于Python的人脸识别系统设计与实现(论文+源码)_kaic

基于Python的人脸识别系统设计与实现 摘 要 随着人工智能的发展,人脸识别系统在我们的生活中越来越被广泛应用。人脸识别系统是指能够从数字图像或视频源中识别人的技术。人脸识别系统可以通过多种方法工作&#xff0c;但是&#xff0c;它们通常是通过将给定图像中的面部特征与…

基于Vue Router和element-ui的LayOut

一、展示 二、代码 app.vue <template><div id"app"><el-container style"border: 1px solid #eee; height: 100vh"><el-aside v-bind:width"asideWidth" style"background-color: rgb(48, 65, 86);"><…

基于ROS从零开始构建自主移动机器人:仿真和硬件

书籍&#xff1a;Build Autonomous Mobile Robot from Scratch using ROS&#xff1a;Simulation and Hardware 作者&#xff1a;Rajesh Subramanian 出版&#xff1a;Apress 书籍下载-《基于ROS从零开始构建自主移动机器人&#xff1a;仿真和硬件》您将开始理解自主机器人发…

ip地址与硬件地址的区别是什么

在数字世界的浩瀚海洋中&#xff0c;每一台联网的设备都需要一个独特的标识来确保信息的准确传输。这些标识&#xff0c;我们通常称之为IP地址和硬件地址。虽然它们都是用来识别网络设备的&#xff0c;但各自扮演的角色和所处的层次却大相径庭。虎观代理小二将带您深入了解IP地…

karpathy make more -- 4

1 Introduction 这个部分要完成一个网络的模块化&#xff0c;然后实现一个新的网络结构。 2 使用torch的模块化功能 2.1 模块化 将输入的字符长度变成8&#xff0c;并将之前的代码模块化 # Near copy paste of the layers we have developed in Part 3# -----------------…

爬虫学习:基本网络请求库的使用

目录 一、urllib网络库 1.urlopen()方法 2.request方法 二、requests网络请求库 1.主要方法 2.requests.get()和requests.post() 一、urllib网络库 1.urlopen()方法 语法格式&#xff1a; urlopen(url,data,timeout,cafile,capath,context) # url:地址 # data:要提交的数据…

[华为OD]C卷 机场航班调度 ,XX市机场停放了多架飞机,每架飞机都有自己的航班号100

题目&#xff1a; XX市机场停放了多架飞机&#xff0c;每架飞机都有自己的航班号CA3385, CZ6678, SC6508 等&#xff0c;航班号的前2个大写字母&#xff08;或数字&#xff09;代表航空公司的缩写&#xff0c;后面4个数字代表航班信息。 但是XX市机场只有一条起飞用跑道&am…

uniapp源码+计划任务 台股平台源码 新股申购 分类后台控制

台股平台源码集成了新股申购与折扣申购功能&#xff0c;结合了计划任务和UniApp源码&#xff0c;为用户提供了一个全面的股票交易解决方案。 经过初步测试&#xff0c;系统可正常运行。测试时没有配置计划任务和WebSocket 。有兴趣的自行研究。 本系统基于PHP 7.3版本开发&am…

【记录】Springboot项目集成docker实现一键部署

公司管理平台完成后&#xff0c;为了方便其他不懂开发的同事部署和测试&#xff0c;集成docker进行一键部署&#xff0c;也为后面自动化部署做准备。本文做个简单记录。 1、安装docker yum install https://download.docker.com/linux/fedora/30/x86_64/stable/Packages/cont…

maven插件:dockerfile-maven-plugin和docker-maven-plugin

Maven插件dockerfile-maven-plugin和docker-maven-plugin都是为Java开发人员提供了一种便捷的方式&#xff0c;通过Maven构建流程来自动化创建、管理和推送Docker镜像。虽然它们有着相似的目标&#xff0c;即集成Docker与Maven项目&#xff0c;但这两个插件在实现细节、功能侧重…

嵌入式全栈开发学习笔记---C语言笔试复习大全3

目录 笔试题3 笔试题4 笔试题5 上一篇介绍了数据类型的长度和数据范围&#xff0c;并且分别讲解了两个经典的笔试题&#xff0c;这一篇我们再来看三道非常经典的考数据类型长度、数据范围和数据类型转换的笔试题。 说明&#xff1a;我们学过单片机的一般都是有C语言基础的了…

Flask路由的使用

Flask 是一个轻量级的 Python Web 框架&#xff0c;其简洁的设计使得构建 Web 应用变得轻而易举。其中&#xff0c;路由是 Flask 中至关重要的一部分&#xff0c;它定义了 URL 与视图函数之间的映射关系&#xff0c;决定了用户请求的处理方式。在本文中&#xff0c;我们将深入探…

vue3项目引入VueQuill富文本编辑器(成功)及 quill-image-uploader 图像模块(未成功)

tip&#xff1a;重点解释都写在代码注释里了&#xff0c;方便理解&#xff0c;所以看起来比较密集 富文本基本使用 项目文件夹路径安装依赖 npm install vueup/vue-quilllatest --save 全局注册&#xff1a;main.js // main.js// 自己项目的一些配置&#xff08;只放了主要…

【C语言】文件操作(万字解读超详细解析)

最好的时光&#xff0c;在路上;最好的生活&#xff0c;在别处。独自上路去看看这个世界&#xff0c;你终将与最好的自己相遇。&#x1f493;&#x1f493;&#x1f493; 目录 • ✨说在前面 &#x1f34b;知识点一&#xff1a;什么是文件&#xff1f; • &#x1f330;1.程序…

【项目学习01_2024.05.01_Day03】

学习笔记 3.6 开发业务层3.6.1 创建数据字典表3.6.2 编写Service3.6.3 测试Service 3.7 接口测试3.7.1 接口完善3.7.2 Httpclient测试 3.8 前后端联调3.8.1 准备环境3.8.2 安装系统管理服务3.8.3 解决跨域问题解决跨域的方法&#xff1a;我们准备使用方案2解决跨域问题。在内容…

模方试用版水面修整,调整水岸线功能进程缓慢该怎么解决?

答&#xff1a;水面修整&#xff0c;第一个点选取准确的高程位置和水边&#xff0c;其他点就可以包含整个水面范围就行&#xff0c;可以绘制大一些。上图绘制区域没有包含到所有的水面&#xff0c;可以尝试下图的红线绘制区域。 模方是一款针对实景三维模型的冗余碎片、水面残缺…

使用Neo4j和Langchain创建知识图谱

使用Neo4j和Langchain创建知识图谱 知识图谱是组织和整合信息的强大工具。通过使用实体作为节点和关系作为边缘&#xff0c;它们提供了一种系统的知识表示方法。这种有条理的表示有利于简化查询、分析和推理&#xff0c;使知识图在搜索引擎、推荐系统、自然语言处理和人工智能…

Docker:centos7安装docker

官网&#xff1a;https://www.docker.com/官网 文档地址 - 确认centos7及其以上的版本 查看当前系统版本 cat /etc/redhat-release- 卸载旧版本 依照官网执行 - yum安装gcc相关 yum -y install gccyum -y install gcc-c- 安装需要的软件包 yum install -y yum-utils- 设置s…

Java 基础重点知识-(泛型、反射、注解、IO)

文章目录 什么是泛型? 泛型有什么用?泛型原理是什么? Java 反射什么是反射? 反射作用是什么?动态代理有几种实现方式? 有什么特点? Java 注解什么是注解, 作用是什么? Java I/O什么是序列化?Java 是怎么实现系列化的?常见的序列化协议有哪些?BIO/NIO/AIO 有什么区别…

可靠的Mac照片恢复解决方案

当您在搜索引擎搜索中输入“Mac照片恢复”时&#xff0c;您将获得数以万计的结果。有很多Mac照片恢复解决方案声称他们可以在Mac OS下恢复丢失的照片。但是&#xff0c;并非互联网上的所有Mac照片恢复解决方案都可以解决您的照片丢失问题。而且您不应该花太多时间寻找可靠的Mac…
最新文章