切换主题
C++ MySQL 数据库操作
本文档介绍如何在 C++ 中使用 MySQL Connector/C++ 操作 MySQL 数据库。
MySQL Connector/C++ 简介
MySQL Connector/C++ 是官方提供的 C++ API,用于与 MySQL 数据库交互。它支持标准的 C++ 编程接口,适合高性能数据库操作。
安装与配置
1. 安装 MySQL Connector/C++
- 前往 MySQL 官方网站 下载 MySQL Connector/C++。
- 解压后,将库文件和头文件添加到项目中。
2. 配置项目
- 在项目中包含头文件:cpp
#include <mysql_driver.h> #include <mysql_connection.h> #include <cppconn/statement.h> #include <cppconn/resultset.h>
1
2
3
4 - 将 MySQL Connector/C++ 的库文件添加到链接器输入中。
示例代码
以下是一个连接 MySQL 数据库并执行查询的示例:
cpp
// filepath: d:\Docs\huaqiwill-dev-docs\编程语言\C++\扩展库\C++ MySQL数据库操作.md
#include <iostream>
#include <mysql_driver.h>
#include <mysql_connection.h>
#include <cppconn/statement.h>
#include <cppconn/resultset.h>
int main() {
try {
// 创建 MySQL 驱动实例
sql::mysql::MySQL_Driver* driver = sql::mysql::get_mysql_driver_instance();
// 连接到数据库
std::unique_ptr<sql::Connection> conn(driver->connect("tcp://127.0.0.1:3306", "username", "password"));
conn->setSchema("testdb");
// 创建 SQL 语句
std::unique_ptr<sql::Statement> stmt(conn->createStatement());
stmt->execute("CREATE TABLE IF NOT EXISTS users (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(255), age INT)");
// 插入数据
stmt->execute("INSERT INTO users (name, age) VALUES ('Alice', 30), ('Bob', 25)");
// 查询数据
std::unique_ptr<sql::ResultSet> res(stmt->executeQuery("SELECT * FROM users"));
while (res->next()) {
std::cout << "ID: " << res->getInt("id") << ", Name: " << res->getString("name")
<< ", Age: " << res->getInt("age") << std::endl;
}
} catch (sql::SQLException& e) {
std::cerr << "Error: " << e.what() << std::endl;
return -1;
}
return 0;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
说明
- 连接数据库:使用
driver->connect
方法连接到 MySQL 数据库。 - 执行 SQL 语句:通过
Statement
对象执行 SQL 语句。 - 处理结果集:使用
ResultSet
对象遍历查询结果。
注意事项
- 确保 MySQL 服务已启动,并且提供正确的连接信息(地址、用户名、密码)。
- 使用
try-catch
捕获sql::SQLException
以处理数据库操作中的错误。 - 推荐使用
std::unique_ptr
管理资源,避免内存泄漏。