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 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");
char toSelectFrom[250] = "SELECT * FROM mytable";
if (0 != mysql_query(&mysqlConnect, toSelectFrom))
{
printf("SQL语句执行失败: %s\n", mysql_error(&mysqlConnect));
mysql_close(&mysqlConnect);
}
MYSQL_RES *res;
MYSQL_FIELD *field;
MYSQL_ROW nextRow;
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;
}
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的安装配置以及项目程序的安装配置步骤比较繁琐,造成某些步骤缺失,产生很多问题而连不上数据库。但一套操作下来还是可以学到很多东西的,继续努力。
|