数据库通用访问接口设计与实现(C++)
由于项目的需要,我们需要连接许多类型的数据库。同时我们希望对数据库的操作能够提供一个统一的访问接口。现在网上有不少开源的,但是对于用惯了VC ADO的人来说,这些接口设计的感觉真是有点反人类。比较好用的有一个人SQLAPI++,但是是要收费的,破解版的也没有源代码,那种代码无法掌握在自己手里的感觉,总是感觉不爽。于是便自己开始写一个。
根据初步的设计,有了以下的一个模型:
这个只是一个初步的模型。具体的实现中,主要有两个类,一个是CDbConnect和CDbRecordSet。这两个类主要是提供了访问接口。同时还有一个CDbFactory为了构建CDbConnect对象,这个类中主要是一系列的静态函数。
目前该功能已经完全实现,暂时支持的数据库有MS SQL/Oracle/Postgresql/sqlite,其他的需要支持在以后来添加,个人觉得拓展性还是很强的。
主要的三个对外接口的类设计如下:
第一次用这个,发现贴图很蛋疼,接下来我会接着更新,代码也会给出来,希望大家一起交流,写一个好的DbConnect。