IOS 資料庫封裝(Andy)

2021-05-27 09:45:51 字數 3162 閱讀 1100

h檔案

#import

#import "sqlite3.h"

@inte***ce databaseoperation : nsobject

@property(nonatomic)sqlite3*    m_sql;

@property(nonatomic,retain)nsstring*    m_dbname;

-(id)initwithdbname:(nsstring*)dbname;

-(bool)openorcreatedatabase:(nsstring*)dbname;

-(bool)createtable:(nsstring*)sqlcreatetable;

-(void)closedatabase;

-(bool)inserttable:(nsstring*)sqlinsert;

-(bool)updatatable:(nsstring*)sqlupdata;

-(nsarray*)querrytable:(nsstring*)sqlquerry;

-(nsarray*)querrytablebycallback:(nsstring*)sqlquerry;

@end

m檔案#import "databaseoperation.h"

@implementation databaseoperation

@synthesizem_sql;

@synthesizem_dbname;

- (id) initwithdbname:(nsstring*)dbname

}returnself; }

- (id) init

- (void) dealloc

//-------------------建立資料庫-------------------------

-(bool)openorcreatedatabase:(nsstring*)dbname

returnyes; }

//------------------建立表----------------------

-(bool)createtable:(nsstring*)sqlcreatetable

char *errormsg;

if (sqlite3_exec (self.m_sql, [sqlcreatetable utf8string],null,null, &errormsg) != sqlite_ok)

[self

closedatabase];

returnyes; }

//----------------------關閉資料庫-----------------

-(void)closedatabase

//------------------insert-------------------

-(bool)inserttable:(nsstring*)sqlinsert

char* errormsg = null;

if(sqlite3_exec(self.m_sql, [sqlinsertutf8string],0,null, &errormsg) ==sqlite_ok)

else

returnyes; }

//--------------updata-------------

-(bool)updatatable:(nsstring*)sqlupdata

char *errormsg;

if (sqlite3_exec (self.m_sql, [sqlupdata utf8string],0,null, &errormsg) !=sqlite_ok)

else

return yes; }

//--------------select---------------------

-(nsarray*)querrytable:(nsstring*)sqlquerry

int row = 0;

int column = 0;

char*    errormsg = null;

char**    dbresult = null;

nsmutablearray*    array = [[nsmutablearray

alloc

]init];

if(sqlite3_get_table(m_sql, [sqlquerryutf8string], &dbresult, &row,&column,&errormsg ) ==sqlite_ok)

int index = column;

for(int i =0; i < row ; i++ )

index ++;

} [array addobject:dic];

[dic release];

}}else

[self

closedatabase];

return [array autorelease];

}//----------------------select--------------------

int processdata(void* arrayresult,int columncount,char** columnvalue,char** columnname)

} [(nsmutablearray*)arrayresult addobject:dic];

[dic release];

return

0; }

//---------------------select-----------------------

-(nsarray*)querrytablebycallback:(nsstring*)sqlquerry

char*    errormsg = null;

nsmutablearray* arrayresult = [[nsmutablearray

alloc

]init];

if (sqlite3_exec(self.m_sql,[sqlquerryutf8string],processdata,(void*)arrayresult,&errormsg) !=sqlite_ok)

[self

closedatabase];

return [arrayresult autorelease];

}@end

基於IOS的sqlite資料庫封裝

dbcontroller是基於ios下的object c實現的,封裝了對sqlite資料庫的常用的查詢 插入 更新和刪除操作,不需要再次修改和實現資料庫的底層介面操作,直接申明模型類,然後呼叫dbcontroller來進行資料的操作。當前專案的限制就是模型類的成員資料型別只支援整形 浮點型 nsst...

資料庫訪問封裝

專案名稱 dbacess 專案目的 封裝jdbc訪問 專案使用 任意,保障所有包開源 專案當前功能 1.訪問資料庫方法封裝 2.資料庫連線池採用hikaricp 3.配置檔案遵守hikaricp的配置,設定根目錄,以此保障功能多資料庫,多源。4.擴充套件驅動路徑,採用自定義載入器載入驅動 5.新資料...

資料庫封裝專案

專案名稱 dbacess 專案目的 封裝jdbc訪問 專案使用 任意,保障所有包開源 專案當前功能 1.訪問資料庫方法封裝 2.資料庫連線池採用hikaricp 3.配置檔案遵守hikaricp的配置,設定根目錄,以此保障功能多資料庫,多源。4.擴充套件驅動路徑,採用自定義載入器載入驅動 5.新資料...