【发布时间】:2013-12-09 02:31:39
【问题描述】:
我正在保护我项目中的数据库访问对象,该对象是用 C++ 编写并连接到 MySQL(使用 MySQL C API)。
该项目是一个 24x7 运行的服务器端应用程序。
我需要的保护是在每次操作之前确保数据库连接是健康的。如果DAO与数据库断开连接或连接超时,我将不得不暂停操作并等待重新连接成功。
我目前的设计是:
class DAO
{
public:
int Conn(string svr, string port, string usr, string pwd, string schema);
int Close();
// Methods for database manipulation
int QueryXXX( ... );
int InsertYYY( ... );
int UpdateZZZ ( ... );
private:
MYSQL* m_conn;
}
(我在这里尽量简化)
(对于每一个处理新数据的新功能,我只是简单地添加更多方法。) p>
基于上述设计,我将不得不在每个方法的开头添加检查代码,并且我需要提醒自己和其他开发人员将来在每个新方法中添加相同的代码。
有没有比在每个方法开始时复制相同的代码(或调用相同的函数)更好的解决方案?
谢谢!
【问题讨论】: