笨蛋学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

相关文章

SpringBoot实现数据库读写分离的3种方法小结

《SpringBoot实现数据库读写分离的3种方法小结》为了提高系统的读写性能和可用性,读写分离是一种经典的数据库架构模式,在SpringBoot应用中,有多种方式可以实现数据库读写分离,本文将介绍三... 目录一、数据库读写分离概述二、方案一:基于AbstractRoutingDataSource实现动态

C# WinForms存储过程操作数据库的实例讲解

《C#WinForms存储过程操作数据库的实例讲解》:本文主要介绍C#WinForms存储过程操作数据库的实例,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、存储过程基础二、C# 调用流程1. 数据库连接配置2. 执行存储过程(增删改)3. 查询数据三、事务处

mysql数据库重置表主键id的实现

《mysql数据库重置表主键id的实现》在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,本文主要介绍了mysql数据库重置表主键id的实现,具有一定的参考价值,感兴趣的可以了... 目录关键语法演示案例在我们的开发过程中,难免在做测试的时候会生成一些杂乱无章的SQL主键数据,当我们

C++ 中的 if-constexpr语法和作用

《C++中的if-constexpr语法和作用》if-constexpr语法是C++17引入的新语法特性,也被称为常量if表达式或静态if(staticif),:本文主要介绍C++中的if-c... 目录1 if-constexpr 语法1.1 基本语法1.2 扩展说明1.2.1 条件表达式1.2.2 fa

Spring Boot 整合 MyBatis 连接数据库及常见问题

《SpringBoot整合MyBatis连接数据库及常见问题》MyBatis是一个优秀的持久层框架,支持定制化SQL、存储过程以及高级映射,下面详细介绍如何在SpringBoot项目中整合My... 目录一、基本配置1. 添加依赖2. 配置数据库连接二、项目结构三、核心组件实现(示例)1. 实体类2. Ma

电脑win32spl.dll文件丢失咋办? win32spl.dll丢失无法连接打印机修复技巧

《电脑win32spl.dll文件丢失咋办?win32spl.dll丢失无法连接打印机修复技巧》电脑突然提示win32spl.dll文件丢失,打印机死活连不上,今天就来给大家详细讲解一下这个问题的解... 不知道大家在使用电脑的时候是否遇到过关于win32spl.dll文件丢失的问题,win32spl.dl

C++中::SHCreateDirectoryEx函数使用方法

《C++中::SHCreateDirectoryEx函数使用方法》::SHCreateDirectoryEx用于创建多级目录,类似于mkdir-p命令,本文主要介绍了C++中::SHCreateDir... 目录1. 函数原型与依赖项2. 基本使用示例示例 1:创建单层目录示例 2:创建多级目录3. 关键注

C++从序列容器中删除元素的四种方法

《C++从序列容器中删除元素的四种方法》删除元素的方法在序列容器和关联容器之间是非常不同的,在序列容器中,vector和string是最常用的,但这里也会介绍deque和list以供全面了解,尽管在一... 目录一、简介二、移除给定位置的元素三、移除与某个值相等的元素3.1、序列容器vector、deque

C++常见容器获取头元素的方法大全

《C++常见容器获取头元素的方法大全》在C++编程中,容器是存储和管理数据集合的重要工具,不同的容器提供了不同的接口来访问和操作其中的元素,获取容器的头元素(即第一个元素)是常见的操作之一,本文将详细... 目录一、std::vector二、std::list三、std::deque四、std::forwa

C++字符串提取和分割的多种方法

《C++字符串提取和分割的多种方法》在C++编程中,字符串处理是一个常见的任务,尤其是在需要从字符串中提取特定数据时,本文将详细探讨如何使用C++标准库中的工具来提取和分割字符串,并分析不同方法的适用... 目录1. 字符串提取的基本方法1.1 使用 std::istringstream 和 >> 操作符示