步骤是:一、安装 MySQL Connector/C++ 库;二、连接到 MySQL 数据库;三、执行 SQL 查询;四、处理 SQL 查询结果。在使用 C++ 调用 MySQL 数据库之前,需要先安装 MySQL Connector/C++ 库。该库是 MySQL 官方提供的 C++ 接口库,可以使开发人员更加方便地使用 MySQL 数据库。
一、安装 MySQL Connector/C++ 库
在使用 C++ 调用 MySQL 数据库之前,需要先安装 MySQL Connector/C++ 库。该库是 MySQL 官方提供的 C++ 接口库,可以使开发人员更加方便地使用 MySQL 数据库。
可以从 MySQL 官方网站下载 MySQL Connector/C++ 库。下载完成后,您需要将库文件添加到您的 C++ 项目中。
二、连接到 MySQL 数据库
在使用 MySQL Connector/C++ 库之前,您需要先连接到 MySQL 数据库。以下是连接到 MySQL 数据库的示例代码:
#include <mysqlx/xdevapi.h>
#include <iostream>
int main() {
try {
mysqlx::Session session("localhost", 33060, "root", "password");
std::cout << "Connected to MySQL server!" << std::endl;
session.close();
} catch (const mysqlx::Error& error) {
std::cerr << "Failed to connect to MySQL server: " << error.what() << std::endl;
}
return 0;
}
在上面的代码中,我们使用 mysqlx::Session
类来连接到 MySQL 数据库。该类的构造函数需要四个参数:
- 主机名(例如
localhost
) - 端口号(例如
33060
) - 用户名(例如
root
) - 密码(例如
password
)
如果连接成功,我们将会看到 Connected to MySQL server!
的输出,否则将会看到 Failed to connect to MySQL server:
的错误信息。
三、执行 SQL 查询
在连接到 MySQL 数据库后,您可以使用 MySQL Connector/C++ 库执行 SQL 查询。以下是执行 SQL 查询的示例代码:
#include <mysqlx/xdevapi.h>
#include <iostream>
int main() {
try {
mysqlx::Session session("localhost", 33060, "root", "password");
mysqlx::Schema db = session.getSchema("mydatabase");
mysqlx::Table mytable = db.getTable("mytable");
mysqlx::RowResult result = mytable.select("name", "age").execute();
for (const mysqlx::Row& row : result) {
std::cout << "Name: " << row[0] << ", Age: " << row[1] << std::endl;
}
session.close();
} catch (const mysqlx::Error& error) {
std::cerr << "Failed to execute SQL query: " << error.what() << std::endl;
}
return 0;
}
在上面的代码中,我们使用 mysqlx::Table
类来执行 SQL 查询。该类的构造函数需要一个参数:表名(例如 mytable
)。
我们使用 mytable.select("name", "age").execute()
方法来执行 SQL 查询。该方法接受一个或多个列名作为参数,并返回一个包含结果行的 mysqlx::RowResult
对象。
在处理结果行时,我们使用 for (const mysqlx::Row& row : result)
循环来迭代结果行。我们可以通过 row[i]
来访问结果行中的第 i
列。
四、处理 SQL 查询结果
在执行 SQL 查询后,您可以使用 MySQL Connector/C++ 库处理查询结果。以下是处理 SQL 查询结果的示例代码:
#include <mysqlx/xdevapi.h>
#include <iostream>
int main() {
try {
mysqlx::Session session("localhost", 33060, "root", "password");
mysqlx::Schema db = session.getSchema("mydatabase");
mysqlx::Table mytable = db.getTable("mytable");
mysqlx::RowResult result = mytable.select("name", "age").execute();
std::vector<std::string> names;
std::vector<int> ages;
for (const mysqlx::Row& row : result) {
names.push_back(row[0]);
ages.push_back(row[1]);
}
std::cout << "Names: ";
for (const auto& name : names) {
std::cout << name << " ";
}
std::cout << std::endl;
std::cout << "Ages: ";
for (const auto& age : ages) {
std::cout << age << " ";
}
std::cout << std::endl;
session.close();
} catch (const mysqlx::Error& error) {
std::cerr << "Failed to execute SQL query: " << error.what() << std::endl;
}
return 0;
}
在上面的代码中,我们使用 std::vector
类来存储结果行中的数据。我们使用 names.push_back(row[0])
和 ages.push_back(row[1])
将结果行中的数据添加到 std::vector
中。
在输出结果时,我们使用 for (const auto& name : names)
和 for (const auto& age : ages)
循环来迭代 std::vector
中的数据。
延伸阅读:
什么是Mysql?
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
文章标题:怎么用C++调用MySQL,发布者:Flawy,转载请注明出处:https://worktile.com/kb/p/53652