C++连接MySQL数据库的两种方法主要有ADO连接和MySQL api连接。下面我将详细讲解这两种方法的使用,包括安装配置,数据库连接和基本数据操作。
1. ADO连接
1.1 安装ADO组件
使用ADO连接MySQL需要安装Microsoft Data Access Components (MDAC/Microsoft Data Access) 组件。在Windows下,MDAC组件默认已经安装。可以在命令行中输入regsvr32 msado15.dll
检查。如果安装成功会输出"DllRegisterServer in msado15.dll succeeded."。
1.2 配置ODBC数据源
- 打开控制面板中的ODBC数据源管理器(或者直接在Windows搜索栏中输入odbcad32.exe)
- 选择“系统DSN”(如果你想对所有用户都可用),或者选择“用户 DSN”(如果你只想让当前用户使用)。
- 点击“添加”按钮,选择MySQL ODBC 驱动,填写配置信息,并测试连接。
1.3 使用ADO连接MySQL
连接示例代码如下:
#include <iostream>
#include <string>
#import "C:\Program Files\Common Files\System\Ado\msado15.dll" no_namespace rename("EOF", "EndOfFile")
using namespace std;
int main()
{
CoInitialize(nullptr);
_ConnectionPtr ConnPtr("ADODB.Connection");
_bstr_t strConnection = "Driver={MySQL ODBC 8.0 Unicode Driver};Server=127.0.0.1;Port=3306;Database=test;User=root;Password=root;Option=3";
try {
ConnPtr->ConnectionString = strConnection;
ConnPtr->CursorLocation = adUseClient;
ConnPtr->Open(strConnection, "", "", adModeUnknown);
wcout << "Connection established successfully!" << endl;
ConnPtr->Close();
CoUninitialize();
}
catch (_com_error& e) {
wcout << e.Description() << endl;
return -1;
}
return 0;
}
2. MySQL API连接
2.1 安装MySQL
在官网下载MySQL Community Server并完成安装,安装完成后需要设置用户名和密码,并且不要默认开启匿名用户。
2.2 配置include和lib路径
配置include和lib的路径,把mysql.h和libmysql.lib添加到你的工程中。
2.3 使用MySQL API连接
连接示例代码如下:
#include <iostream>
#include <string>
#include <mysql.h>
using namespace std;
int main(int argc, char *argv[])
{
MYSQL* conn;
MYSQL_RES* res;
MYSQL_ROW row;
string server = "127.0.0.1";
string user = "root";
string password = "root";
string database = "test";
conn = mysql_init(NULL);
if (!mysql_real_connect(conn, server.c_str(), user.c_str(), password.c_str(), database.c_str(), 0, NULL, 0)) {
cout << "Error connecting to database: " << mysql_error(conn) << endl;
return -1;
}
else {
cout << "Connection established successfully!" << endl;
}
mysql_close(conn);
return 0;
}
以上就是C++连接MySQL数据库的两种方法的完整攻略。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c++连接mysql数据库的两种方法(ADO连接和mysql api连接) - Python技术站