推荐使用MySQL官方Connector/C++库连接和操作MySQL数据库。首先下载并安装Connector/C++,配置头文件和库路径;然后在代码中包含相应头文件,使用Driver、Connection、Statement等对象建立连接并执行SQL查询;最后注意编译时链接mysqlcppconn库,并处理运行时依赖问题。示例代码展示了通过Classic API连接数据库、执行查询并输出结果的完整流程。
要在C++中连接和操作MySQL数据库,推荐使用MySQL官方提供的Connector/C++库。它是一个面向C++的MySQL驱动程序,允许开发者通过标准的类似JDBC的API来访问MySQL数据库。
在开始之前,确保你的系统已经安装了MySQL Server,并下载并安装MySQL Connector/C++:
nclude目录)、库文件(lib目录)以及可能需要的DLL(Windows下)假设你使用的是Linux或WSL,且已安装g++、cmake和MySQL Connector/C++。
编译时需链接以下库:
编译命令示例:
g++ -o main main.cpp -I/usr/local/mysql/include -L/usr/local/mysql/lib -lmysqlcppconn
如果你使用的是静态库,请确认链接正确的版本并处理依赖项。
以下是一个使用MySQL Connector/C++ Classic API 连接数据库并执行查询的简单示例:
#include#include #include #include #include #include #include using namespace std; int main() { sql::Driver *driver; sql::Connection *con; sql::Statement *stmt; sql::ResultSet *res; try { // 获取数据库驱动 driver = get_driver_instance(); // 建立连接 (主机, 用户名, 密码) con = driver->connect("tcp://127.0.0.1:3306", "root", "your_password"); // 选择数据库 con->setSchema("testdb"); // 创建语句对象 stmt = con->createStatement(); // 执行查询 res = stmt->executeQuery("SELECT id, name FROM users"); // 遍历结果 while (res->next()) { cout << "ID: " << res->getInt("id") << ", Name: " << res->getString("name") << endl; } // 清理资源 delete res; delete stmt; delete con; } catch (sql::SQLException &e) { cout << "SQLException in " << __FILE__; cout << " (" << __FUNCTION__ << ") on line " << __LINE__ << endl; cout << "Error: " << e.what(); cout << " [Error Code]: " << e.getErrorCode() << endl; } return 0; }
基本上就这些。只要配置好环境,用Connector/C++操作MySQL并不复杂,但容易忽略链接和运行时依赖问题。