使用vs2019 C/C++ 进行数据库的链接

使用vs2019 C/C++ 进行数据库的链接

第一次写博客,首先要感谢奇牛学院的rock老师和Martin老师,将我领进编程大道。虽然还在学习的道路上摸爬打滚,但是却没有以前到处找资料时的迷茫了。这里简单记录一下学习。

1、准备工作

首先得先有vs2019或vs系列的IDE,然后还要有数据库,因为我是学的MySQL80,所以这里推荐这个。
1、打开数据库的安装目录,默认的安装目录为:C:\Program Files\MySQL\MySQL Server 8.0。如果找不到Program files,是因为系统将其隐藏了,需要将查看->隐藏的项目勾选才能看到。在这个目录下确认includelib 这两个文件是否存在,其中include文件包含了使用C/C++访问数据库需要的头文件,lib则是包含了动态链接库以及其他所需要的库文件。
2、打开vs2019,新建一个项目,并将解决方案平台改为X64(MySQL需要在X64的平台上运行)。
3、右击工程名(!!!注意不是解决方案名!!!),打开属性页,在左侧的目录中找到VC++目录并点击,在右侧出现的选项中选择包含目录,并点击编辑。在出现的对话款各种填入第一步找到的include文件的路径 点击确认。
4、在当前目录下点击库目录,在弹出的对话框中填入第一步找到的lib库文件的路径,点击确认。
5、在左侧的目录中找到连接器,并选择它的子目录输入,在右侧的选项中选择附加依赖项,点击进入对话框后填入lib文件夹下的ibmysql.lib文件的文件名(!!!注意不是路径,是文件名,文件名,文件名)点击确认。
6、将lib\libmysql.lib文件复制到**C:\windows\system32**的目录下。这个步骤只需要做一次。上面的5步则在创建新项目时都要进行。

2、进行测试

做完以上的准备工作后,还需要进行测试
测试代码:
#include <mysql.h>
#include <iostream>
using namespace std;

int main()
{
	MYSQL mysql;		//数据库句柄
	MYSQL_RES* res;		//查询结果集
	MYSQL_ROW row;		//记录结构体
	bool ret;			//保存数据库访问后的返回值
	//初始化数据库
	mysql_init(&mysql);
	//设置字符编码
	mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"gbk");
	//访问数据库
	//其中password为数据库的密码,mydatabase是我数据库中的一个库
	ret = mysql_real_connect(&mysql,"127.0.0.1","root","password","mydatabase",3306,NULL,0);
	if!ret)//访问失败
	{
		cout <<"数据库连接失败,错误原因:"<< mysql_error(&mysql);
		exit(-1); 
	}
	//查询数据
	int count = mysql_query(&mysql,"select * from mytable");
	cout << "count = " << count << endl;
	//获取结果集
	res = mysql_store_result(&mysql);
	//将res中记录赋值给row,并打印其中的字段
	while(row = mysql_fetch_row(res))
	{
		cout << row[0] <<"\t"
			 << row[1] << "\t"
			 << row[2] << endl;
	}
	//查询结束后释放结果集
	mysql_free_result(res);
	//关闭数据库
	mysql_close(&mysql);
	system("pause");
	return 0;
}

如果准备工作做的正确,在控制台将会打印数据库中的字段

3、总结

1、将所需的头文件(include)和库文件(lib)导入到项目属性里的包含目录和库目录
2、在连接器中的附加依赖项中添加 libmysql.lib(这里是文件名)
3、将C:\program files\MySQL\MySQL Server 8.0\lib\libmysql.dll复制到C:\windows\system32 的目录下。
4、数据库访问过程:
I、包含头文件<mysql.h>

#include <mysql.h>		//包含数据库的头文件

II、声明数据库句柄(MYSQL mysql;),这个句柄在访问的全程中都要使用,相当于打开房门的钥匙

MYSQL mysql;		//声明数据库句柄

III、初始化数据库 语句:

mysql_init(&mysql);		//初始化数据库

IV、设置字符编码,因为中文的的编码为GBK2132(GBK兼容GBK2132)。如果不设置字符编码,将会看到乱码。

mysql_options(&mysql,MYSQL_SET_CHARSET_NAME,"gbk");		//设置字符编码

V、访问数据库

mysql_real_connect(&mysql,"127.0.01"."root","password","database",3306,NULL,0);

VI、数据库访问完之后一定要关闭数据库和释放结果集

mysql_free_result(res);		//释放结果集
mysql_close(&mysql);		//关闭数据库

第一次写文章,大佬勿喷
后续还会更加详细的补充

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值