IOS FMDB框架 简单粗暴的使用

来源:互联网 发布:刷svip超级会员软件 编辑:程序博客网 时间:2024/06/01 10:15

 1.下载FMDB框架

    果断去:www.github.com ,然后搜索FMDB,回车搜索

    结果有很多,共同点一样


  2.新建一个项目,导入libsqlite3.dylib (TARGETS->Build Phases->Link Binary With Lib.....), 下图 你就眼熟 。。。。 

    



 3.写代码 

  假设我要操作一个User对象,包含name,password,idNumber ,二话不罗嗦,上代码

  

  1. #import <Foundation/Foundation.h>  
  2.   
  3. @interface User : NSObject  
  4.   
  5. @property (nonatomic,retainNSString *name;  
  6. @property (nonatomic,retainNSString *password;  
  7. @property (nonatomic,retainNSString *idNumber;  
  8.   
  9.   
  10. +(User *)allocWithDictionary:(NSDictionary *)d;  
  11.   
  12. -(NSDictionary *)toDictionary;  
  13.   
  14.   
  15.   
  16. +(BOOL)saveUser:(User *)u;  
  17. +(BOOL)deleteUser:(NSString *)uId;  
  18. +(NSMutableArray *)selectAll;  
  19.   
  20.   
  21.   
  22. @end  
  23.   
  24.   
  25.   
  26.   
  27. --------------------------------------------------  -------------------------  
  28.   
  29. #import "User.h"  
  30. #import "FMDB.h"  
  31.   
  32.   
  33.   
  34.   
  35. #define DATABASE_PATH [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0]stringByAppendingString:@"/hebiao.db"]  
  36.   
  37. //FMDB  
  38. #define FMDBQuickCheck(SomeBool) { if (!(SomeBool)) { NSLog(@"Failure on line %d", __LINE__); abort(); } }  
  39.   
  40. @implementation User  
  41.   
  42. @synthesize name,password,idNumber;  
  43.   
  44.   
  45.   
  46.   
  47.   
  48.   
  49. +(User *)allocWithDictionary:(NSDictionary *)d{  
  50.       
  51.     User *u=[[User alloc] init];  
  52.     u.name=d[@"name"];  
  53.     u.password=d[@"password"];  
  54.     u.idNumber=d[@"idNumber"];  
  55.       
  56.       
  57.     return u;  
  58. }  
  59.   
  60. -(NSDictionary *)toDictionary{  
  61.       
  62.       
  63.       
  64.     return  @{@"name":name,@"password":password,@"idNumber":idNumber};  
  65. }  
  66.   
  67.   
  68. +(BOOL)saveUser:(User *)u{  
  69.       
  70.       
  71.     FMDatabase *db = [FMDatabase databaseWithPath:DATABASE_PATH];  
  72.     if (![db open]) {  
  73.         NSLog(@"数据库打开失败");  
  74.         return NO;  
  75.     };  
  76.       
  77.       
  78.       
  79. //    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 )";  
  80.       
  81.       
  82.      NSString *createStr=@"CREATE  TABLE  IF NOT EXISTS 'tb_user' ('idNumber' VARCHAR PRIMARY KEY NOT NULL  UNIQUE , 'name' VARCHAR, 'password' VARCHAR )";  
  83.       
  84.     BOOL worked = [db executeUpdate:createStr];  
  85.     FMDBQuickCheck(worked);  
  86.   
  87.   
  88.       
  89.      NSString *insertStr=@"INSERT INTO 'tb_user' ('idNumber','name','password') VALUES (?,?,?)";  
  90.       
  91.     worked = [db executeUpdate:insertStr,u.idNumber,u.name,u.password];  
  92.       
  93.      FMDBQuickCheck(worked);  
  94.       
  95.       
  96.      [db close];  
  97.       
  98.       
  99.     return worked;  
  100. }  
  101. +(BOOL)deleteUser:(NSString *)uId{  
  102.       
  103.     FMDatabase *db = [FMDatabase databaseWithPath:DATABASE_PATH];  
  104.     if (![db open]) {  
  105.         NSLog(@"数据库打开失败");  
  106.         return NO;  
  107.     };  
  108.       
  109.       
  110.     NSString *str=@"delete from tb_user where idNumber=?";  
  111.       
  112.       
  113.       
  114.     BOOL worked = [db executeUpdate:str,uId];  
  115.       
  116.      FMDBQuickCheck(worked);  
  117.       
  118.     [db close];  
  119.       
  120.       
  121.     return worked;  
  122. }  
  123. +(NSMutableArray *)selectAll{  
  124.     NSMutableArray *resultArr=[[NSMutableArray alloc]init];  
  125.       
  126.     FMDatabase *db = [FMDatabase databaseWithPath:DATABASE_PATH];  
  127.     if (![db open]) {  
  128.         NSLog(@"数据库打开失败");  
  129.         return resultArr;  
  130.     };  
  131.       
  132.     [self check:db];  
  133.     
  134.     FMResultSet *rs=[db executeQuery:@"select * from tb_user"];  
  135.     while ([rs next]) {  
  136.         User *u=[[User alloc]init];  
  137.         u.idNumber=[rs stringForColumn:@"idNumber"];  
  138.         u.name=[rs stringForColumn:@"name"];  
  139.   
  140.         u.password=[rs stringForColumn:@"password"];  
  141.   
  142.          
  143.         [resultArr addObject:[u toDictionary]];  
  144.     }  
  145.     [rs close];  
  146.     [db close];  
  147.   
  148.       
  149.       
  150.       
  151.     return resultArr;  
  152. }  
  153.   
  154. +(BOOL)check:(FMDatabase *)db{  
  155.       
  156.     NSString *createStr=@"CREATE  TABLE  IF NOT EXISTS 'tb_user' ('idNumber' VARCHAR PRIMARY KEY NOT NULL  UNIQUE , 'name' VARCHAR, 'password' VARCHAR )";  
  157.       
  158.     BOOL worked = [db executeUpdate:createStr];  
  159.     FMDBQuickCheck(worked);  
  160.       
  161.       
  162.     return worked;  
  163. }  
  164.   
  165.   
  166.    



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];

0 0