VSCode环境下连接 MySQL 8.0 数据库 (C++)

前言

时隔了不知道多久,笔者需要在Windows环境下通过VSCode重新搭建一个简单的数据库连接的Cpp工程。由于VSCode和MySQL的版本和之前连通时发生了一些变化,无需用MySQL Connector,环境配置的细节和之前也不尽相同,因此笔者找了一些资料,重新整理了一遍,以便重现。

本文推荐读者有对基本的MySQL规则了解,以及有VSCode基础的情况下进行实操。对于MySQL和VSCode的安装,请读者自行根据其他网络资料进行搭建,本文不再赘述。

1. 进入VSCode,配置两个json文件

1)c_cpp_properties.json

打开vscode,按下ctrl+shit+p,如下,选择编辑C/C++配置,会自动创建一个名为c_cpp_properties.json 的文件

读者需要在 c_cpp_properties.json 文件中设置 includePath,以正确包含.h头文件

之后,需要确认一下编译器是否是 g++,而非 gcc。如果是 gcc,需要将红框中的部分改为g++,其余地方的gcc暂且可以不管。

这里给出c_cpp_properties.json文件的参考:

Cobol 复制代码
{
    "configurations": [
        {
            "name": "Win32",
            "includePath": [
                "${workspaceFolder}/**",
                "C:\\Program Files\\MySQL\\MySQL Server 8.0\\include"
            ],
            "defines": [
                "_DEBUG",
                "UNICODE",
                "_UNICODE"
            ],
            "compilerPath": "C:\\msys64\\ucrt64\\bin\\g++.exe",
            "cStandard": "c17",
            "cppStandard": "gnu++17",
            "intelliSenseMode": "windows-gcc-x64"
        }
    ],
    "version": 4
}

2)tasks.json

tasks.json的获取可以通过按下ctrl+shit+d,在运行和调试下通过创建launch.json文件

在这个操作后,得到 launch.json 的同时,可以得到 task.json

tasks.json 用来定义 g++ 的编译指令, -I 和 -L 则指定了编译时 include 头文件和 lib 链接的位置。通常,如果 -I 的内容设置错误,会导致程序中的类或函数无法找到;如果 -L 的内容设置错误,则容易出现运行时的链接错误。

我们找到 MySQL Server 安装路径下所包含的 lib 和 include 目录,将他们包含到这里

MySQL Server 安装路径可以右键Command Line Client寻找

并且将检查编译器,是否正确指定为 g++

2. 将 libmysql.dll 放到待编译的cpp文件同目录下

这个 dll 文件在上述lib目录中,复制到工程目录下即可。

如下所示:

3. 编写示例程序:

代码如下:

cpp 复制代码
#include<iostream>
#include <mysql.h>

int main(){
    MYSQL *mysql = mysql_init(0);
    if(!mysql_real_connect(mysql,"localhost","user","password","mybase",0,0,0))    // 注意改成自己的
    {
        printf("连接数据库出错:%s",mysql_error(mysql));   
        return -1;    
    }
    std::cout << "DB connect success" << std::endl;

    if(mysql_query(mysql,"insert into mentor values ('abandon','zzz')"))
    {
        printf("Info : %s",mysql_error(mysql));
    }
    return 0;
}

这个例子中要求你先在Mysql中建立一个名为mybase的数据库,以及一个名为mentor的表。

可以先通过MySQL的Command Line Client进行打开,执行以下SQL指令:

sql 复制代码
-- 查看数据库,进入数据库,查看表
show databases;
use mybase;
show tables;

-- 创建表 mentor
CREATE TABLE `mentor` (
  `name` varchar(20) NOT NULL,
  `t_name` varchar(100) NOT NULL,
  PRIMARY KEY (`name`),
  UNIQUE KEY `t_name` (`t_name`)
)

4. 对cpp文件编译&运行:

在VSCode中,对示例工程进行运行和调试

可以看到打印 DB 连接成功,正确调用 mysql_query() 。

(由于笔者这里已经写入过一次该数据,接收到的Info是提示我该主键已经存在。读者第一次运行成功则不会打印该信息)

进入 Command Line Client 中,通过select指令进行查看:

可以看到该条信息已经被插入,至此完成。

相关推荐
NCIN EXPE2 小时前
redis 使用
数据库·redis·缓存
MongoDB 数据平台2 小时前
为编码代理引入 MongoDB 代理技能和插件
数据库·mongodb
极客on之路2 小时前
mysql explain type 各个字段解释
数据库·mysql
代码雕刻家2 小时前
MySQL与SQL Server的基本指令
数据库·mysql·sqlserver
lThE ANDE2 小时前
开启mysql的binlog日志
数据库·mysql
yejqvow122 小时前
CSS如何控制placeholder文字的颜色_使用--placeholder伪元素
jvm·数据库·python
oLLI PILO2 小时前
nacos2.3.0 接入pgsql或其他数据库
数据库
m0_743623923 小时前
HTML怎么创建多语言切换器_HTML语言选择下拉结构【指南】
jvm·数据库·python
pele3 小时前
Angular 表单中基于下拉选择动态启用字段必填校验的完整实现
jvm·数据库·python