IM項(xiàng)目-數(shù)據(jù)庫的封裝
因?yàn)樵陧?xiàng)目中可能出現(xiàn)垮系統(tǒng)的數(shù)據(jù)庫操作~所以數(shù)據(jù)庫的連接必須使用api,
為方便起見,我把項(xiàng)目中經(jīng)常用到的功能簡單的封裝兩個(gè)類,這樣的形式源于odbc的模型?
CDB? 用來創(chuàng)建管理連接,并生成查詢結(jié)果;
CRS保存結(jié)果集,并提供查詢共能
主要功能函數(shù)如下
CDB(char* uid, char* pwd, char* db, char* host="127.0.0.1", int port=3306);
?CRS Execute(char* strsql);
?int ExecuteNon(char* strsql);
?
?CRS();
?int GetCount(void);
?//獲取操作數(shù)據(jù)操作
?int GetInt(int index);
?int GetInt(char* strFieldName);
?int GetInt(string strFieldName);
?string GetString(int index);
?string GetString(char* strFieldName);
?string GetString(string strFieldName);
?//結(jié)果集指針操作
?void MoveNext(void);
?void MoveTo(int rownumber);
?void MoveFirst(void);
?void MoveLast(void);
?bool IsEOF(void);
?bool IsBOF(void);
?void Close(void);
為了保證通用性,數(shù)據(jù)的保存使用vector,原本想要使用map來保存的,但是因?yàn)槭褂胢ap時(shí),數(shù)據(jù)的鍵依然還是一個(gè)int型的索引,并不會(huì)帶來性能或者是操作性的優(yōu)化,所以最終還是放棄了。
這一版本,個(gè)人認(rèn)為功能很弱,操作性也不是很好,但是由于項(xiàng)目要求的比較急,也就將就一下吧~~以后再充實(shí)。
在涉及字符串的操作時(shí)~我認(rèn)為將char*轉(zhuǎn)換成?string不失為一個(gè)不錯(cuò)的選擇,string提供了良好的操作性,在需要轉(zhuǎn)換成char*直接調(diào)用功能函數(shù)c_str()即可。很大程度的降低了代碼的復(fù)雜度