$(MySQLConnDir)\include$(MySQLConnDir)\lib64\vs14 (對應 VS 版本)mysqlcppconn.libmysqlcppconn.dll 至 EXE 目錄#pragma once
#include
#include
#include
#include
#include
#include
class MySQLDatabase {
sql::mysql::MySQL_Driver* driver;
std::unique_ptr conn;
public:
bool Connect(const CString& host, int port,
const CString& user, const CString& pwd, const CString& db) {
try {
driver = sql::mysql::get_mysql_driver_instance();
std::string url = "tcp://" + CT2A(host) + ":" + std::to_string(port) + "/" + CT2A(db);
conn.reset(driver->connect(url, CT2A(user), CT2A(pwd)));
return conn->isValid();
} catch (sql::SQLException& e) {
AfxMessageBox(CString(e.what()));
return false;
}
}
std::unique_ptr Query(const CString& sql) {
std::unique_ptr stmt(conn->createStatement());
return std::unique_ptr(stmt->executeQuery(CT2A(sql)));
}
int Execute(const CString& sql) {
std::unique_ptr stmt(conn->createStatement());
return stmt->executeUpdate(CT2A(sql));
}
};
MySQLDatabase db;
if (db.Connect(_T("127.0.0.1"), 3306, _T("root"), _T("123456"), _T("testdb"))) {
auto rs = db.Query(_T("SELECT * FROM users"));
while (rs->next()) {
CString name = rs->getString("name").c_str();
// 處理數據...
}
}
參考完整教程:MFC MySQL Connector/C++ 實戰