1.下载FMDB框架
果断去:www.github.com ,然后搜索FMDB,回车搜索
结果有很多,共同点一样
2.新建一个项目,导入libsqlite3.dylib (TARGETS->Build Phases->Link Binary With Lib.....), 下图 你就眼熟 。。。。
3.写代码
假设我要操作一个User对象,包含name,password,idNumber ,二话不罗嗦,上代码
- #import <Foundation/Foundation.h>
- @interface User : NSObject
- @property (nonatomic,retain) NSString *name;
- @property (nonatomic,retain) NSString *password;
- @property (nonatomic,retain) NSString *idNumber;
- +(User *)allocWithDictionary:(NSDictionary *)d;
- -(NSDictionary *)toDictionary;
- +(BOOL)saveUser:(User *)u;
- +(BOOL)deleteUser:(NSString *)uId;
- +(NSMutableArray *)selectAll;
- @end
- -------------------------------------------------- -------------------------
- #import "User.h"
- #import "FMDB.h"
- #define DATABASE_PATH [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]stringByAppendingString:@"/hebiao.db"]
- //FMDB
- #define FMDBQuickCheck(SomeBool) { if (!(SomeBool)) { NSLog(@"Failure on line %d", __LINE__); abort(); } }
- @implementation User
- @synthesize name,password,idNumber;
- +(User *)allocWithDictionary:(NSDictionary *)d{
- User *u=[[User alloc] init];
- u.name=d[@"name"];
- u.password=d[@"password"];
- u.idNumber=d[@"idNumber"];
- return u;
- }
- -(NSDictionary *)toDictionary{
- return @{@"name":name,@"password":password,@"idNumber":idNumber};
- }
- +(BOOL)saveUser:(User *)u{
- FMDatabase *db = [FMDatabase databaseWithPath:DATABASE_PATH];
- if (![db open]) {
- NSLog(@"数据库打开失败");
- return NO;
- };
- // NSString *createStr=@"CREATE TABLE IF NOT EXISTS 'tb_user' ('messageId' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE , 'messageFrom' VARCHAR, 'messageTo' VARCHAR, 'messageContent' VARCHAR, 'messageDate' DATETIME,'messageType' INTEGER )";
- NSString *createStr=@"CREATE TABLE IF NOT EXISTS 'tb_user' ('idNumber' VARCHAR PRIMARY KEY NOT NULL UNIQUE , 'name' VARCHAR, 'password' VARCHAR )";
- BOOL worked = [db executeUpdate:createStr];
- FMDBQuickCheck(worked);
- NSString *insertStr=@"INSERT INTO 'tb_user' ('idNumber','name','password') VALUES (?,?,?)";
- worked = [db executeUpdate:insertStr,u.idNumber,u.name,u.password];
- FMDBQuickCheck(worked);
- [db close];
- return worked;
- }
- +(BOOL)deleteUser:(NSString *)uId{
- FMDatabase *db = [FMDatabase databaseWithPath:DATABASE_PATH];
- if (![db open]) {
- NSLog(@"数据库打开失败");
- return NO;
- };
- NSString *str=@"delete from tb_user where idNumber=?";
- BOOL worked = [db executeUpdate:str,uId];
- FMDBQuickCheck(worked);
- [db close];
- return worked;
- }
- +(NSMutableArray *)selectAll{
- NSMutableArray *resultArr=[[NSMutableArray alloc]init];
- FMDatabase *db = [FMDatabase databaseWithPath:DATABASE_PATH];
- if (![db open]) {
- NSLog(@"数据库打开失败");
- return resultArr;
- };
- [self check:db];
- FMResultSet *rs=[db executeQuery:@"select * from tb_user"];
- while ([rs next]) {
- User *u=[[User alloc]init];
- u.idNumber=[rs stringForColumn:@"idNumber"];
- u.name=[rs stringForColumn:@"name"];
- u.password=[rs stringForColumn:@"password"];
- [resultArr addObject:[u toDictionary]];
- }
- [rs close];
- [db close];
- return resultArr;
- }
- +(BOOL)check:(FMDatabase *)db{
- NSString *createStr=@"CREATE TABLE IF NOT EXISTS 'tb_user' ('idNumber' VARCHAR PRIMARY KEY NOT NULL UNIQUE , 'name' VARCHAR, 'password' VARCHAR )";
- BOOL worked = [db executeUpdate:createStr];
- FMDBQuickCheck(worked);
- return worked;
- }
4.简单粗暴调用
添加用户
User *u=[[User alloc] init];
u.name=[[NSUUID UUID] UUIDString];
u.idNumber=[NSString stringWithFormat:@"%d",i];
u.password=[NSString stringWithFormat:@"%d",rand()];
[User saveUser:u];
查询用户
NSArray *arr=[User selectAll];