VsCode + CMake构建项目 C/C++连接Mysql数据库 | 数据库增删改查C++封装 | 信息管理系统通用代码 ---- 课程笔记

这篇具有很好参考价值的文章主要介绍了VsCode + CMake构建项目 C/C++连接Mysql数据库 | 数据库增删改查C++封装 | 信息管理系统通用代码 ---- 课程笔记。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

这个是B站Up主:程序员程子青的视频 

C++封装Mysql增删改查操作_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1m24y1a79o/?p=6&spm_id_from=pageDriver&vd_source=a934d7fc6f47698a29dac90a922ba5a3安装mysql:mysql 下载和安装和修改MYSQL8.0 数据库存储文件的路径-CSDN博客

创建数据库和表:

C:\Users\heheda>mysql -u heheda -p
mysql> create database test;
mysql> show databases;
mysql> use test;
mysql> create table student(stuId int not null auto_increment primary key,stuName varchar(255) not null,className varchar(255) not null);
mysql> show tables;
mysql> insert into student values(3,'杰瑞','终极三班');
Query OK, 1 row affected (0.00 sec)

参考这篇文章:windows下使用vscode原生态配置c++链接mysql数据库:windows下使用vscode原生态配置c++链接mysql数据库_vscode 链接 lib库-CSDN博客

VsCode + CMake构建项目 C/C++连接Mysql数据库 | 数据库增删改查C++封装 | 信息管理系统通用代码 ---- 课程笔记,CMake 笔记,数据库,mysql,笔记,cmake,vscode

  • mysql下的include文件夹直接拷贝到项目目录下【或者只拷贝include中的mysql.h文件】方便引用mysql.h头文件
  •  拷贝libmysql.dll 、libmysql.lib、mysqlclient.lib文件直接放在工程目录下因为这里可执行文件在其所在目录下直接寻找动态链接源文件
  •  当cmake构建好项目之后,我们可以把libmysql.dll 、libmysql.lib文件直接放在bin目录下

VsCode + CMake构建项目 C/C++连接Mysql数据库 | 数据库增删改查C++封装 | 信息管理系统通用代码 ---- 课程笔记,CMake 笔记,数据库,mysql,笔记,cmake,vscode

  • StudentManager.h
#pragma once
#include <mysql.h>
#include <iostream>
#include <string>
#include <vector>

using namespace std;

typedef struct student {
    int stuId;
    string stuName;
    string className;
}Student;

class StudentManager {
private:
    StudentManager();
    ~StudentManager();
public:
    static StudentManager* GetInstance() { //单例修改
        static StudentManager StudentManager;
        return &StudentManager;
    }
public:
    // 增上改查
    bool insertStu(Student& stu);
    bool updateStu(Student& stu);
    bool deleteStu(int stuId);
    vector<Student> queryStu(string condition = "");
private:
    MYSQL* conn;
    const char* host = "127.0.0.1";
    const char* user = "heheda";
    const char* pwd = "123456";
    const char* dbName = "test";
    const unsigned short port = 3306;
    const char* tableName = "student";
};
  • StudentManager.cpp
#include "StudentManager.h"

StudentManager::StudentManager() {
    conn = mysql_init(NULL);
    // 设置字符编码
    mysql_options(conn, MYSQL_SET_CHARSET_NAME, "GBK");
    if(!mysql_real_connect(conn,host,user,pwd,dbName,port,NULL,0)) {
        std::cout<<"Failed to connect"<<std::endl;
        exit(1);
    }
}

StudentManager::~StudentManager() {
    mysql_close(conn);
}

bool StudentManager::insertStu(Student &stu) {
    char sql[1024];
    sprintf(sql,"insert into student (stuId,stuName,className) values(%d,'%s','%s')",
            stu.stuId,stu.stuName.c_str(),stu.className.c_str());
    // mysql_query成功返回0,失败返回非0
    if(mysql_query(conn,sql)) {
        fprintf(stderr,"Failed to insert data into database!!!Error:%s\n",
                mysql_error(conn));
        return false;
    }
    return true;
}

// c_str():生成一个const char*指针,指向以空字符终止的数组
bool StudentManager::updateStu(Student &stu) {
    char sql[1024];
    sprintf(sql,"UPDATE student SET stuName = '%s',className = '%s'"
    "where stuId = %d",stu.stuName.c_str(),stu.className.c_str(),stu.stuId);
    if(mysql_query(conn,sql)) {
        fprintf(stderr,"Failed to update data!!!Error:%s\n",mysql_error(conn));
        return false;
    }
    return true;
}

bool StudentManager::deleteStu(int stuId) {
    char sql[1024];
    sprintf(sql,"DELETE FROM student WHERE stuId = '%d'",stuId);
    if(mysql_query(conn,sql)) {
        fprintf(stderr,"Failed to delete data!!!Error:%s\n",mysql_error(conn));
        return false;
    }
    return true;
}

vector<Student> StudentManager::queryStu(string condition) {
    vector<Student> stuList;
    char sql[1024];
    sprintf(sql,"SELECT * FROM student %s",condition.c_str());
    if(mysql_query(conn,sql)) {
        fprintf(stderr,"Failed to select data!!!Error:%s\n",mysql_error(conn));
        return {};
    }
    MYSQL_RES* res = mysql_store_result(conn);
    MYSQL_ROW row;
    while((row = mysql_fetch_row(res))) {
        Student stu;
        stu.stuId = atoi(row[0]);
        stu.stuName = row[1];
        stu.className = row[2];
        stuList.push_back(stu);
    }
    return stuList;
}
  • CMakeLists.txt
cmake_minimum_required(VERSION 3.10)
project(test)
include_directories(${PROJECT_SOURCE_DIR}/include)

set(StudentManager ${PROJECT_SOURCE_DIR}/StudentManager) 
include_directories(${StudentManager}/include)

aux_source_directory(${StudentManager}/src StudentManagerSrc)

link_directories(${PROJECT_SOURCE_DIR}/lib)
add_executable(app test.cpp ${StudentManagerSrc})
target_link_libraries(app mysql)

# 指定输出的路径
set(HOME ${PROJECT_SOURCE_DIR}) # 定义一个变量用于存储一个绝对路径
set(EXECUTABLE_OUTPUT_PATH ${HOME}/bin) # 将拼接好的路径值设置给 EXECUTABLE_OUTPUT_PATH 变量
  • test.cpp
#include "StudentManager.h"
#include <mysql.h>

int main() {
    Student stu{3,"杰瑞","猫鼠一班"};
    // StudentManager::GetInstance()->insertStu(stu);
    // StudentManager::GetInstance()->deleteStu(3);
    StudentManager::GetInstance()->updateStu(stu);
    char condition[1024];
    sprintf(condition,"where className = '%s'","终极一班");
    // sprintf(condition,"where stuId = %d",2);
    // string condition = string();
    vector<Student> ret= StudentManager::GetInstance()->queryStu(condition);
    for(auto& it:ret){
        std::cout<<"打印: ";
        cout<<it.stuId<<" "<<it.stuName<<" "<<it.className<<endl;
    }
    std::cout<<"I am heheda!"<<std::endl;
    return 0;
}

VsCode + CMake构建项目 C/C++连接Mysql数据库 | 数据库增删改查C++封装 | 信息管理系统通用代码 ---- 课程笔记,CMake 笔记,数据库,mysql,笔记,cmake,vscode文章来源地址https://www.toymoban.com/news/detail-803895.html

到了这里,关于VsCode + CMake构建项目 C/C++连接Mysql数据库 | 数据库增删改查C++封装 | 信息管理系统通用代码 ---- 课程笔记的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • VsCode连接Mysql、Redis、MariaDB、SQL Server等数据库并进行可视化操作。无需额外的去下载可视化数据软件了,VsCode前端很方便的插件!!!

    前言:VsCode直接连接并操作数据库!最近使用公司的新电脑时,才发现好多东西需要重新下载 、配置,最近偶然接触到了 VsCode 的 Database Clinent 插件,可连接众多的服务,其中就支持连接到本地和远程的数据库,可视化操作、语句查询、导入、导出数据等基本功能集合,个人

    2024年02月05日
    浏览(50)
  • 【从0配置JAVA项目相关环境1】jdk + VSCode运行java + mysql + Navicat + 数据库本地化 + 启动java项目

    实验室电脑,需要跑一个前后端分离的JAVA项目,于是开始重新配置 全部(数据库+后端+前端)配置环境+修改代码 耗时6h,包括遇到各种坑,但总体而言弯路走的不多 如果跟着这篇博客走,理论上会避开我遇到的那些坑hh 在当今快速发展的技术世界中,Java仍然是最受欢迎和广

    2024年02月05日
    浏览(33)
  • vscode如何连接数据库服务

    1.在vscode插件商店里下载并安装两个插件 2.主界面就会发现出现mysql 表示安装成功了 3.激活数据库,点击加号 根据数据库测试成功对话框信息, host = 127.0.0.1 user = root password = password port =3306 (default) certificate file path (可省略) 但是你就会发现下面出现报错提示 4.打开mysq

    2024年02月06日
    浏览(28)
  • Django-drf项目初始化:跨域、认证权限过滤、static静态资源路由,mysql数据库连接,登录注册功能

    码云地址:https://gitee.com/liuhaizhang/drf-project-initialization 项目目录结构: study_drf            -home         -static         -study_drf         -util         -manage.py pip install django #drf基于django pip install djangorestframework #drf框架 pip install mysqlclient #连接数据库 pip install djangorestframewo

    2024年02月03日
    浏览(54)
  • vscode + CMake 构建C语言项目

    1. 所需工具 Visual Stduio Code(vscode) CMake 简介: CMake 是一个跨平台的 构建工具 ,用于 自动 生成项目构建文件。它支持多种操作系统和构建系统,并提供简洁的语法和命令来定义项目的构建过程、源代码文件和依赖关系。CMake 可以根据 CMakeLists.txt 文件自动生成适合不同构建

    2024年02月06日
    浏览(26)
  • Failed to load driver class com.mysql.cj.jdbc.Driver异常-IntellIJ Idea-后端项目连接数据库配置

    前言 :后端项目连接数据库配置时,添加了如下application.properties的数据库连接配置 项目点击运行,就出现以下系列问题 这种情况通常是由于以下原因之—引起的: 1.没有在项目中引入mysql-connectorjar包,或者引入的包版本与JDBC驱动不匹配。解决方法:在项目pom.xml中添加相关依

    2024年02月07日
    浏览(64)
  • windows vscode jsoncpp cmake c++ 构建项目

    jsoncpp的编译和使用推荐文章: jsoncpp的编译和使用 | 爱编程的大丙 (subingwen.cn) https://www.subingwen.cn/cpp/jsoncpp/ 从这个链接下载jsoncpp-master:https://github.com/open-source-parsers/jsoncpp 可以把这个文件夹名字改成jsoncpp,改短点 (●\\\'◡\\\'●),路径为D:/jsoncpp 下载 cmake 工具:我下载的是3.28.1版

    2024年01月20日
    浏览(40)
  • 项目练习:构建读写分离的数据库集群

    目录 一、目标实现 二、项目准备 三、项目实施 1.配置基础环境 1.1修改主机名 1.2配置3台群集虚拟机的/etc/hosts文件 1.3.配置网卡 1.4.配置本地yum源 2.部署Mycat中间件服务 2.1安装KDJ环境 3.部署MariaDB主从数据库集群服务 3.1安装MariaDB服务 3.2初始化MariaDB数据库 3.3配置数据库集群主

    2024年02月02日
    浏览(40)
  • vscode连接sql数据库插件SQLTools Microsoft SQL Server用法

    vscode下载扩展插件:SQLTools Microsoft SQL Server 下载后选择add new connection 按需配置后点击最下面save connection按钮再点connect now按钮  然后会出现一个sql文件,在这个文件里面编写查询语句等再点run on active connection就会弹出一个右侧窗口可以看数据了  

    2024年02月12日
    浏览(43)
  • MySQL 数据库之 MMM 高可用架构构建

    1. 什么是 MMM   MMM(Master-Master replication manager for MySQL,MySQL 主主复制管理器)是一套支持双主故障切换和双主日常管理的脚本程序。MMM 使用 Perl 语言开发,主要从来监控和管理 MySQL Master-Master(双主)复制,虽然叫做双主复制,但是业务上同一时刻只允许一个主进行写入,

    2024年02月04日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包