当前位置:首页 > C++ > 正文

C++连接MySQL数据库实战指南(使用MySQL Connector/C++从零开始)

在现代软件开发中,C++连接MySQL 是一个非常常见的需求。无论是开发桌面应用、服务器后端还是嵌入式系统,掌握如何通过 C++ 与 MySQL 数据库进行交互都是至关重要的技能。本文将手把手教你使用官方推荐的 MySQL Connector/C++ 来实现 C++ 与 MySQL 的连接、查询和操作,即使是编程小白也能轻松上手!

C++连接MySQL数据库实战指南(使用MySQL Connector/C++从零开始) C++ MySQL Connector  C++连接MySQL API C++数据库编程 第1张

什么是 MySQL Connector/C++?

MySQL Connector/C++ 是由 Oracle 官方提供的 C++ 驱动程序,用于让 C++ 应用程序能够连接并操作 MySQL 数据库。它基于 JDBC(Java Database Connectivity)风格设计,提供了面向对象的 API,支持 SQL 查询、事务处理、预编译语句等高级功能。

准备工作:安装依赖

在开始编码前,你需要完成以下准备工作:

  • 安装 MySQL 服务器(建议 8.0 或以上版本)
  • 安装 MySQL Connector/C++ 开发库(可从 官网下载
  • 配置好 C++ 编译环境(如 GCC 或 Visual Studio)

以 Ubuntu 系统为例,你可以使用以下命令安装:

sudo apt updatesudo apt install libmysqlcppconn-dev mysql-server  

第一个 C++ 连接 MySQL 程序

下面我们将编写一个简单的 C++ 程序,连接本地 MySQL 数据库,并执行一条 SELECT 查询。这个例子涵盖了 C++数据库编程 的基本流程。

#include <iostream>#include <mysql_driver.h>#include <mysql_connection.h>#include <cppconn/statement.h>#include <cppconn/resultset.h>using namespace std;int main() {    try {        sql::mysql::MySQL_Driver *driver;        sql::Connection *con;        // 创建驱动实例        driver = sql::mysql::get_mysql_driver_instance();        // 连接数据库(参数:host, user, password)        con = driver->connect("tcp://127.0.0.1:3306", "root", "your_password");        // 选择数据库        con->setSchema("test_db");        // 创建语句对象        sql::Statement *stmt = con->createStatement();        // 执行查询        sql::ResultSet *res = stmt->executeQuery("SELECT id, name FROM users LIMIT 5");        // 遍历结果集        while (res->next()) {            cout << "ID: " << res->getInt("id")                  << ", Name: " << res->getString("name") << endl;        }        // 释放资源        delete res;        delete stmt;        delete con;    } catch (sql::SQLException &e) {        cout << "MySQL 错误: " << e.what() << endl;        cout << "错误代码: " << e.getErrorCode() << endl;    }    return 0;}  

编译与运行

保存上述代码为 main.cpp,然后使用以下命令编译(Linux/macOS):

g++ -o main main.cpp -lmysqlcppconn  

运行程序:

./main  

如果一切顺利,你将看到从 users 表中查询出的前5条记录。

常见问题与注意事项

  • 链接错误:确保已正确安装 libmysqlcppconn-dev 并在编译时链接 -lmysqlcppconn
  • 权限问题:MySQL 用户需有访问目标数据库的权限。
  • 内存管理:记得手动释放 ResultSetStatementConnection 对象,避免内存泄漏。
  • 异常处理:始终使用 try-catch 捕获 sql::SQLException,提高程序健壮性。

结语

通过本教程,你已经掌握了使用 MySQL Connector/C++ 实现 C++连接MySQL 的基本方法。这是 MySQL C++ API 编程的第一步,后续你可以探索更高级的功能,如预编译语句(PreparedStatement)、事务控制、连接池等。希望这篇 C++数据库编程 入门指南能为你打下坚实基础!

如有疑问,欢迎在评论区交流!