目录
- 写在前面
- 一、准备工作
- 1.1 把 libmysql.dll 和 libmysql.lib 文件复制到工程目录下
- 1.2 添加 libmysql.lib
- 1.3 添加 include目录
- 1.4 包含头文件
- 1.5 其他准备工作
- 1.5.1 代码准备
- 1.5.2 创建数据库连接
- 1.6 选择相应方案配置 Release,解决方案平台 x64
- 二、代码测试案例
- 2.1 向数据库插入数据
- 2.2 向数据库删除数据
- 2.3 修改数据
- 2.4 查询数据,打印出来
- 三、使用C语言连接MySQL数据库 的测试案例代码
- 总结
写在前面
知道了 Java中使用 JDBC编程 来连接数据库了,但是使用 C语言 来连接数据库却总是连接不上去~
立即安排一波使用 C语言连接 MySQL数据库的教程~
一、准备工作
1.1 把 libmysql.dll 和 libmysql.lib 文件复制到工程目录下
首先,我们要找到刚刚开始下载的 MySQL数据库 的安装目录,打开目录,并且将 libmysql.dll文件 和 libmysql.lib文件 复制到工程目录下~
我安装MySQL的路径:C:\Program Files\MySQL\MySQL Server 5.7\lib
1.2 添加 libmysql.lib
1.3 添加 include目录
我的这个路径是:C:\Program Files\MySQL\MySQL Server 5.7\include
来到 VS2019 页面,和上述操作一样~
右键MySQL工程,选择属性 右键,选择 C/C++,选择常规,选择 附加包含目录,同时进行编辑,将刚刚复制的 include路径 给粘贴上去~
1.4 包含头文件
接下来 在VS2019里面,先后敲出代码:
#include <WinSock.h> 和 #include <mysql.h> ,需要注意的是,两行代码的顺序不可以改变~
1.5 其他准备工作
1.5.1 代码准备
#include <iostream>
using namespace std;
#include <WinSock.h>
#include <mysql.h>
void test();
int main()
{
cout << "main" << endl;
test();
getchar();
return 0;
}
void test()
{
printf("test\n");
MYSQL m; //mysql连接
MYSQL_RES* res; //查询结果集
MYSQL_ROW row; //二维数组,存放数据
//初始化数据库
mysql_init(&m);
//设置编码方式
mysql_options(&m, MYSQL_SET_CHARSET_NAME, "gbk");
//连接数据库
if (mysql_real_connect(&m, "localhost", "root", "111111", "c", 3306, NULL, 0))
{ //主机 用户名 密码 数据库名 端口
printf("数据库连接成功\n");
}
else {
printf("数据库连接失败:%s \n", mysql_error(&m));
//输出错误信息
}
}
1.5.2 创建数据库连接
第一步,Win+R,输入 cmd~
第二步,输入 musql -uroot -p,回车后,输入一开始安装MySQL数据库是设置的密码,之后回车进入数据库~
第三步,开始创建一个新的数据库,并且开始建表之类的操作~
1.6 选择相应方案配置 Release,解决方案平台 x64
最终,来运行一下代码,发现已经成功了~
二、代码测试案例
在经过上述的一系列操作之后,已经可以连接上 MySQL数据库中了~
接下来我们就可以来做一些测试案例~
2.1 向数据库插入数据
此时,再插入数据之前,我们可以来看一看 上面新建的 student表 是没有任何数据的~
但是,在加入 插入数据的代码之后,运行一下,我们就会发现 多出来一条数据~
当然,改成插入多条数据也是可以的啦~
2.2 向数据库删除数据
2.3 修改数据
没修改之前:
修改之后:
2.4 查询数据,打印出来
三、使用C语言连接MySQL数据库 的测试案例代码
/*
//向数据库插入数据
const char* sql = "insert into student values(2,'李四','女'),(3,'王五','男'),"
"(4, '赵六', '女')";
if (mysql_query(&m, sql))
{
printf("插入数据失败:%s \n", mysql_error(&m));
}
else
{
printf("插入数据成功\n");
}
//向数据库删除数据
const char* sql_2 = "delete from student where name = '赵六'";
if (mysql_query(&m, sql_2))
{
printf("删除数据失败:%s \n", mysql_error(&m));
}
else
{
printf("删除数据成功\n");
}
//向数据库修改数据
const char* sql_3 = "update student set id = 5 where name = '李四'";
if (mysql_query(&m, sql_3))
{
printf("修改数据失败:%s \n", mysql_error(&m));
}
else
{
printf("修改数据成功\n");
}
*/
//需要注意的是,在下面的设置中,所查询到的数据 与打印出来的数据要相互匹配,
//不然就会出现乱码的
//查询数据
const char* sql_4 = "select id,sex,name from student where name = '张三'";
if (mysql_query(&m, sql_4))
{
printf("未查到记录:%s \n", mysql_error(&m));
}
else
{
printf("查询成功 \n");
}
//获取查询结果集
res = mysql_store_result(&m);
if (res)
{
printf("获取到数据\n");
}
else
{
printf("未获取到数据:%s \n", mysql_error(&m));
}
//打印获取到的数据
printf("id\tname\tsex\n");
while (row = mysql_fetch_row(res))
{
printf("%s\t%s\t%s\n", row[0], row[1], row[2]);
}
//释放资源
mysql_free_result(res);//释放结果集
mysql_close(&m);//关闭数据库
}
使用 C语言 连接 MySQL数据库,正好可以和 Java 连接 MySQL数据库 相互映衬~