iphone開發之SQLite使用詳解

2021-06-08 13:50:17 字數 3840 閱讀 1752

原文:

sqlite是乙個開源的嵌入式關聯式資料庫,它在2023年由d. richard hipp發布,它的減少應用程式管理資料的開銷,sqlite可移植性好,很容易使用,很小,高效而且可靠。

sqlite嵌入到使用它的應用程式中,它們共用相同的程序空間,而不是單獨的乙個程序。從外部看,它並不像乙個rdbms,但在程序內部,它卻是完整的,自包含的資料庫引擎。

嵌入式資料庫的一大好處就是在你的程式內部不需要網路配置,也不需要管理。因為客戶端和伺服器在同一程序空間執行。sqlite 的資料庫許可權只依賴於檔案系統,沒有使用者帳戶的概念。sqlite 有資料庫級鎖定,沒有網路伺服器。它需要的記憶體,其它開銷很小,適合用於嵌入式裝置。你需要做的僅僅是把它正確的編譯到你的程式。

ios下使用sqlite首先匯入sqlite3.0的lib庫

。然後包含標頭檔案#import

下面的**

主要對常用的資料庫操作如查詢、插入、刪除、更新等進行封裝,方便以後使用。

標頭檔案**如下:

[cpp]view plain

copy

print?

#import 

#import 

#import "user.h"

#define kfilename @"database.sqlite"

@inte***ce sqlite3util : nsobject  

- (nsstring *)datafilepath;  

- (int)getcountofdb;  

- (bool)insertorupdateuser:(nsstring *)sql;  

- (bool)deleteuser:(nsinteger)userid;  

- (nsmutablearray *)getusers;  

- (user *)getuser:(nsinteger)userid;  

- (bool)opendatabase;  

- (void)closedatabase;  

@end  

#import #import #import "user.h"

#define kfilename @"database.sqlite"

@inte***ce sqlite3util : nsobject

- (nsstring *)datafilepath;

- (int)getcountofdb;

- (bool)insertorupdateuser:(nsstring *)sql;

- (bool)deleteuser:(nsinteger)userid;

- (nsmutablearray *)getusers;

- (user *)getuser:(nsinteger)userid;

- (bool)opendatabase;

- (void)closedatabase;

@end

實現如下:

[cpp]view plain

copy

print?

#import "sqlite3util.h"

@implementation sqlite3util  

//return database path

- (nsstring *)datafilepath  

//insert or update data

- (bool)insertorupdateuser:(nsstring *)sqlelse  

sqlite3_close(database);  

}  return no;  

}  //delete a user from database

- (bool)deletequestion:(nsinteger)useridelse  

sqlite3_close(database);  

}  return no;  

}  //get users

- (nsmutablearray *)getusers  

sqlite3_finalize(stmt);  

}  }  

sqlite3_close(database);  

return users;  

}  //get count of the users

- (int)getcountofdb  

sqlite3_finalize(stmt);  

}  }  

return count;  

}  - (user *)getuser:(nsinteger)userid  

sqlite3_finalize(stmt);  

}  }  

return user;  

}  - (bool)opendatabase  

return no;  

}  - (void)closedatabase  

@end  

#import "sqlite3util.h"

@implementation sqlite3util

//return database path

- (nsstring *)datafilepath

//insert or update data

- (bool)insertorupdateuser:(nsstring *)sqlelse

sqlite3_close(database);

}return no;

}//delete a user from database

- (bool)deletequestion:(nsinteger)useridelse

sqlite3_close(database);

}return no;

}//get users

- (nsmutablearray *)getusers

sqlite3_finalize(stmt);}}

sqlite3_close(database);

return users;

}//get count of the users

- (int)getcountofdb

sqlite3_finalize(stmt);}}

return count;

}- (user *)getuser:(nsinteger)userid

sqlite3_finalize(stmt);}}

return user;

}- (bool)opendatabase

return no;

}- (void)closedatabase

@end

在以後的**中直接呼叫即可,如查詢乙個使用者:[cpp]view plain

copy

print?

sqlite3util *sqlutil = [[sqlite3util alloc] init];  

nsingeter userid = 15;  

user *user = [sqluitl getuser:userid];  

sqlite3util *sqlutil = [[sqlite3util alloc] init];

nsingeter userid = 15;

user *user = [sqluitl getuser:userid];

iphone開發 SQLite資料庫使用

我現在要使用sqlite3.0建立乙個資料庫,然後在資料庫中建立乙個 首先要引入sqlite3.0的lib庫。然後包含標頭檔案 import 開啟資料庫,如果沒有,那麼建立乙個 sqlite3 database bool open return yes if sqlite3 open path ut...

iphone開發 SQLite資料庫使用

我現在要使用sqlite3.0建立乙個資料庫,然後在資料庫中建立乙個 首先要引入sqlite3.0的lib庫。然後包含標頭檔案 import 開啟資料庫,如果沒有,那麼建立乙個 sqlite3 database bool open return yes if sqlite3 open path ut...

iphone開發 SQLite資料庫使用

我現在要使用sqlite3.0建立乙個資料庫,然後在資料庫中建立乙個 首先要引入sqlite3.0的lib庫。然後包含標頭檔案 import 開啟資料庫,如果沒有,那麼建立乙個 sqlite3 database 找到資料庫檔案mydb.sql if find return yes if sqlite...