IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> MySQL数据库连接查询(C++篇) -> 正文阅读

[大数据]MySQL数据库连接查询(C++篇)

1. 简介

MySQL是一个有服务器守护程序mysqld和许多不同客户程序及库组成的多用户,多线程的SQL数据库服务器;采用客户机/服务器结构实现,而且源代码开源,值得推荐个大家学习。

2. MySQL数据库配置

(1)MySQL的安装配置
直接帮大伙搜了一下大神的超链接,详情点击即可;https://blog.csdn.net/weixin_46196863/article/details/121488091

(2)新建数据库和表数据
首先,直接点击当前程序进入
在这里插入图片描述
输入数据库密码,点击确定,进入mysql操作界面。
在这里插入图片描述在这里插入图片描述
开始创建数据库MyTestDB:CREATE DATABASE MyTestDB;
验证是否成功创建数据库:SHOW DATABASES;
在这里插入图片描述
使用MyTestDB数据库进行表的创建: USE MyTestDB;
创建表: CREATE TABLE MyTable (ID INT, NAME VARCHAR(50));
验证表是否创建成功:show tables;
在这里插入图片描述
在创建的表格中插入数据:insert into myTable values(1,'myName');
验证数据书否插入成功:select * from Mytable;
在这里插入图片描述
到这,数据库准备这块基本搞定,下面要做的就是要整套代码连接查询了。

3. C++代码实战

(1)我使用vs2015作为开发工具,使用c++作为开发语言进行数据库的连接查询代码编写;
在这里插入图片描述
个人习惯,喜欢新建空项目;这个大家可以根据个人爱好选择程序类型;
在这里插入图片描述
(2)话不多说,为了便于描述,直接新建一个Main.cpp即可,头文件省略;
在这里插入图片描述
(3)配置当前项目:(根据自己mySQL的安装目录,将路径添加到对应目录即可)
右键项目–》属性–》C++目录–》包含目录:(新建目录,添加bin文件夹路径)
右键项目–》属性–》C++目录–》库目录:(新建目录,添加lib文件夹目录)
在这里插入图片描述
在这里插入图片描述
(4)将mysql.dll拷贝到当前项目程序的同级路径
在这里插入图片描述
(5)到此,项目的配置基本完成,直接上代码,完成数据库连接查询。

#include <stdio.h>
#include <mysql.h>
#pragma comment (lib, "libmysql.lib")

void main()
{
    MYSQL mysqlConnect;                 //数据源指针
    mysql_init(&mysqlConnect);          //分配对象 
    if (!(mysql_real_connect(&mysqlConnect, "localhost", "root", "123456", "mytestdb", 3306, NULL, 0))) 
    {
        printf("mysql数据库打开失败%s\n", mysql_error(&mysqlConnect));
    }
    printf("数据库打开成功\n");
}

(6)轻松连接数据库之后,当然就是进行简单的查询了,话不多说,直接上代码;

#include <stdio.h>
#include <mysql.h>
#pragma comment (lib, "libmysql.lib")

void main()
{
    /********************************* MySQL数据库连接 *************************************/
    MYSQL mysqlConnect;                                     //数据源指针
    mysql_init(&mysqlConnect);                              //分配对象 
    if (!(mysql_real_connect(&mysqlConnect, "localhost", "root", "123456", "mytestdb", 3306, NULL, 0))) 
    {
        printf("mysql数据库打开失败:%s\n", mysql_error(&mysqlConnect));
    }
    printf("mysql数据库打开成功\n");

    /*********************************** 执行SQL语句 ****************************************/   
    char toSelectFrom[250] = "SELECT * FROM mytable";            //where后保留空格好直接连接关键词
    if (0 != mysql_query(&mysqlConnect, toSelectFrom))
    {
        printf("SQL语句执行失败: %s\n", mysql_error(&mysqlConnect));
        mysql_close(&mysqlConnect);                         //关闭连接
    }
  
    MYSQL_RES *res;                                         //SQL语句执行结果集
    MYSQL_FIELD *field;                                     //包含字段信息的结构指针
    MYSQL_ROW nextRow;                                      //存放查询sql语句字符串数组
    res = mysql_store_result(&mysqlConnect);                //将查询结果保存
    if (!res)
    {
        printf("SQL语句执行无有结果: %s\n", mysql_error(&mysqlConnect));     
        mysql_close(&mysqlConnect);                         //关闭连接
        return;
    }

    if (mysql_field_count(&mysqlConnect) <= 0)              //字段数
    {
        printf("查询结果为空\n");
        mysql_close(&mysqlConnect);                         //关闭连接
        return;
    }


    /******************************* 打印SQL语句查询结果 *********************************/
    while (field = mysql_fetch_field(res))
    {
        printf("%20s |", field->name);
    }
    printf("\n");

    int column = mysql_num_fields(res);                     //获取查询结果的列数
    while (nextRow = mysql_fetch_row(res)) {
        for (int j = 0; j < column; j++) {
            printf("%20s |", nextRow[j]);
        }
        printf("\n");
    }

}

4. 总结

mysql数据库的连接本身不难,难点在于mysql的安装配置以及项目程序的安装配置步骤比较繁琐,造成某些步骤缺失,产生很多问题而连不上数据库。但一套操作下来还是可以学到很多东西的,继续努力。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-05-24 18:15:37  更:2022-05-24 18:19:53 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:47:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码