C++ VS2019使用MySQL的简单方式
- 前言
- 使用说明
- MySQL使用
- MySQL连接
- MySQL断开
- MySQL执行语句
前言
虽然工作一年多了,公司不是专业的科技公司,没有系统的编程环境,很多东西都靠自己摸索或者请教同事。Java、Python、C++、C#语言都在用,想把自己摸索的东西总结下来,作为自己的技术沉淀。
用过Java的JPA,再对比SQL后发现,好用的不止一星半点。项目接口使用的C++,实在没有精力重新封装接口用Java开发,只能硬着头皮写C++。C++实在没有什么好用的ORM,简单查了一下,大概也就ODB。看了一下官方文档,下了example并且跟着官方的写了一遍,感想就是——太恶心了!!!创建好domain,绑定数据库,还要通过命令生成一大堆东西,还要生成对应的sql…本渣项目很紧急,很难短时间内使用熟练,没办法,只好使用MySQL官方提供的方法了。
使用说明
并不需要在项目属性的C++和链接器配置中添加对应的库,按着如下代码写就可以非常方便的引用了
MySQL使用
MySQL连接
这里以MqSQL 8.0为例。安装好MySQL后,去安装路径(一般应该是Program File)寻找MySQL/MySQL Server 8.0/,将这个路径下的include文件夹拷贝到VS项目文件夹下,再将这个路径的libmysql.lib和libmysql.dll也拷贝到项目路径下
例如,将include放到sln同级路径下,将libmysql.lib和libmysql.dll放到sln同级路径下的lib当中,则需要如下代码,完成对MySQL Api的引用
#include "../include/mysql.h"
#pragma comment(lib, "../lib/libmysql.lib")
构建一个MYSQL 实例
MYSQL mysql;
初始化MySQL
mysql_init(&mysql);
连接MySQL数据库
if (!mysql_real_connect(&mysql, "localhost", "root", "", "marketmaker", 3306, NULL, 0))
{
std::cout << "数据库连接失败" <<std::endl;
}
MySQL断开
断开连接
mysql_close(&mysql);
MySQL执行语句
执行sql查询语句
string sql = "select * from cust_done limit 0, 100;";
mysql_query(&mysql, sql.c_str()); // 执行
MYSQL_RES* result = mysql_store_result(&mysql); //获取查询内容
std::cout << result->row_count << std::endl; // 打印查询行数
while (MYSQL_ROW row = mysql_fetch_row(result)) //获取整条数据内容
{
for (int i = 0; i < num_fields; i++)
{
if (NULL == row[i])
{
cout << " NULL";
}
else
{
cout << " " << row[i];
}
}
cout << endl;
}
同理,执行其他语句也是mysql_query()这个函数,只要是MySQL原生语句都可以执行,报错的话,复制到navicate中查询一下对应的错误信息,也可以查询一下返回值的意义,并不难用,但是也并不方便。