#include <iostream>
|
#include <memory>
|
#include <mutex>
|
#include <string>
|
#include <mysql_driver.h>
|
#include <mysql_connection.h>
|
#include <cppconn/statement.h>
|
#include <cppconn/resultset.h>
|
|
class DatabaseOperator {
|
private:
|
// 私有构造函数
|
DatabaseOperator() {
|
try {
|
driver = sql::mysql::get_mysql_driver_instance();
|
connection = driver->connect("tcp://127.0.0.1:3306", "username", "password");
|
connection->setSchema("your_database");
|
} catch (sql::SQLException &e) {
|
std::cerr << "数据库连接错误: " << e.what() << std::endl;
|
}
|
}
|
|
static DatabaseOperator* instance;
|
static std::mutex mutex;
|
sql::Driver* driver;
|
std::unique_ptr<sql::Connection> connection;
|
|
public:
|
// 获取单例实例
|
static DatabaseOperator* getInstance() {
|
std::lock_guard<std::mutex> lock(mutex);
|
if (instance == nullptr) {
|
instance = new DatabaseOperator();
|
}
|
return instance;
|
}
|
|
// 执行查询操作(示例)
|
sql::ResultSet* query(const std::string& sql) {
|
try {
|
std::unique_ptr<sql::Statement> stmt(connection->createStatement());
|
return stmt->executeQuery(sql);
|
} catch (sql::SQLException &e) {
|
std::cerr << "查询错误: " << e.what() << std::endl;
|
}
|
return nullptr;
|
}
|
};
|
|
std::mutex DatabaseOperator::mutex;
|
DatabaseOperator* DatabaseOperator::instance = nullptr;
|