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

2024-05-02 02:04
文章标签 c++ 连接 数据库 笨蛋

本文主要是介绍笨蛋学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;
}
  • 连接成功,成功插入数据

在这里插入图片描述

这篇关于笨蛋学C++之 C++连接数据库的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/953174

相关文章

java.sql.SQLTransientConnectionException连接超时异常原因及解决方案

《java.sql.SQLTransientConnectionException连接超时异常原因及解决方案》:本文主要介绍java.sql.SQLTransientConnectionExcep... 目录一、引言二、异常信息分析三、可能的原因3.1 连接池配置不合理3.2 数据库负载过高3.3 连接泄漏

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

C++统计函数执行时间的最佳实践

《C++统计函数执行时间的最佳实践》在软件开发过程中,性能分析是优化程序的重要环节,了解函数的执行时间分布对于识别性能瓶颈至关重要,本文将分享一个C++函数执行时间统计工具,希望对大家有所帮助... 目录前言工具特性核心设计1. 数据结构设计2. 单例模式管理器3. RAII自动计时使用方法基本用法高级用法

如何通过try-catch判断数据库唯一键字段是否重复

《如何通过try-catch判断数据库唯一键字段是否重复》在MyBatis+MySQL中,通过try-catch捕获唯一约束异常可避免重复数据查询,优点是减少数据库交互、提升并发安全,缺点是异常处理开... 目录1、原理2、怎么理解“异常走的是数据库错误路径,开销比普通逻辑分支稍高”?1. 普通逻辑分支 v

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象

Mac电脑如何通过 IntelliJ IDEA 远程连接 MySQL

《Mac电脑如何通过IntelliJIDEA远程连接MySQL》本文详解Mac通过IntelliJIDEA远程连接MySQL的步骤,本文通过图文并茂的形式给大家介绍的非常详细,感兴趣的朋友跟... 目录MAC电脑通过 IntelliJ IDEA 远程连接 mysql 的详细教程一、前缀条件确认二、打开 ID

C++ STL-string类底层实现过程

《C++STL-string类底层实现过程》本文实现了一个简易的string类,涵盖动态数组存储、深拷贝机制、迭代器支持、容量调整、字符串修改、运算符重载等功能,模拟标准string核心特性,重点强... 目录实现框架一、默认成员函数1.默认构造函数2.构造函数3.拷贝构造函数(重点)4.赋值运算符重载函数

Go语言连接MySQL数据库执行基本的增删改查

《Go语言连接MySQL数据库执行基本的增删改查》在后端开发中,MySQL是最常用的关系型数据库之一,本文主要为大家详细介绍了如何使用Go连接MySQL数据库并执行基本的增删改查吧... 目录Go语言连接mysql数据库准备工作安装 MySQL 驱动代码实现运行结果注意事项Go语言执行基本的增删改查准备工作