博主最近街道任务“封装Sqlite3”数据库,其实桌面型Sqlite3数据库已经提供了大量API,可以非常简单的使用。按照经理的意思,防止以后更换数据库比如“oracle”、“Sql server”,甚至以后用直接使用“Excel”表格时,需要大量更改项目中与数据库相关的逻辑代码。
为了防止这种情况发生,“封转通用性数据库操作”就交给了我,是也不难,就是先定义一套通用的“操作接口”,通俗点就是先规划好“虚类”和里面的纯虚函数就行,以后的上面“Sqlite3”、oracle”、“Sql server”的实际操作都实现这个“虚类”就OK了。
废话太多了,重点来了,既然是封装,就需要简单,多以最先考虑的是函数重载。但是有一个问题,数据库的查询“还回结果类型”都不一样,如果要重载是不太可能。
//无法使用重载的情况 非常不方便
int GetValueInt();
char* GetValueStr();
double GetValueDouble();
其实如果对所有的查询取值能否只使用一个函数GetValue()呢?经过思考。答案是可以的(纳尼?是C++吗?继续看吧!骚年^~^)。
我们可以直接定义一个还回所有类型的共用