gpt4 book ai didi

c++ - 只有一个连接到数据库和使用函数,C++

转载 作者:行者123 更新时间:2023-11-28 07:10:12 25 4
gpt4 key购买 nike

我有一个连接 MySQL 数据库的类。这个类有 4 个方法。 (插入、getResults 等)我不想在每个方法中都创建数据库连接。所以当我们创建这个对象时我想要一个 init() 。我的问题的连接池解决方案吗?我该如何解决?

有 4 个这样的方法:

bool DataAccessObject::getResults(short int data, std::vector<FaceRecord>* rec)
{
// DataAccessObject *temp = new DataAccessObject();

bool ret = false;

try{
sql::Driver *driver;
sql::Connection *con;
sql::Statement *stmt;
sql::ResultSet *res;
sql::PreparedStatement *prepStmt;

/* Create a connection */
driver = get_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "root", "root");

/* Connect to the MySQL test database */
con->setSchema("test");

std::stringstream s;
s << "SELECT * FROM Amts WHERE "<< data <<" = "<< data <<"";

prepStmt = con->prepareStatement (s.str());
res = prepStmt->executeQuery();

while(res->next()){
tempFR.uuId = res->getInt64("uuId");
tempFR.cameraNo = res->getInt("cameraNo");
tempFR.age = res->getInt("age");
tempFR.gender = res->getInt("gender");
tempFR.time = res->getString("time");
tempFR.image = res->getString("image");
rec->push_back(tempFR);
}


//return true;
ret = true;
}

catch (sql::SQLException &e)
{

std::cout << "# ERR: SQLException in " << __FILE__;
std::cout << "(" << __FUNCTION__ << ") on line " << __LINE__ << std::endl;
std::cout << "# ERR: " << e.what();
std::cout << " (MySQL error code: " << e.getErrorCode();
std::cout << ", SQLState: " << e.getSQLState() << " )" << std::endl;

}

return ret;

}

最佳答案

您可以使用 C++ Singleton design pattern这样您的 init 在您创建它时只会被调用一次。

关于c++ - 只有一个连接到数据库和使用函数,C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21117855/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com