FMDB的简单使用

首先下载FMDB: https://github.com/ccgus/fmdb导入项目,或者 pod  'FMDB' '~> 2.6'


要使用的时候,先创建全局属性:

@property (nonatomicstrongFMDatabase *db;



1,获取数据库

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectoryNSUserDomainMaskYES);

    NSString *documents = [[paths objectAtIndex:0stringByAppendingPathComponent:@"userInfoDB"];

    NSFileManager *fileManager = [[NSFileManager alloc]init];

    //创建新目录

    BOOL createDirectory = [fileManager createDirectoryAtPath:documents withIntermediateDirectories:YES attributes:nil error:nil];

    if (createDirectory) {

        self.database_path = [documents stringByAppendingPathComponent:USER_DB_NAME];

        NSLog(@"数据库地址:%@",self.database_path);

        //获得数据库

        self.db = [FMDatabase databaseWithPath:self.database_path];

    }


2,创建表

- (BOOL)createUserrTable{

//建表语句,ID为主键

    NSString *sql = [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS %@ (%@ TEXT PRIMARY KEY, %@ TEXT, %@ TEXT, %@ TEXT, %@ TEXT)",TABLE_NAME,   IDNAMEBYNAMEPHOTOHXID];

    

//    NSLog(@"----:%@", sql);

    BOOL result = [self.db executeUpdate:sql];

    

    if (result) {

//        NSLog(@"创表成功");

    }else{

//        NSLog(@"创表失败");

    }

    return result1;

}


3,插入数据

-(BOOL) insertUserTableWithUser:(User *)user{

    BOOL result = NO;

    if ([self.db open]) {

        

        @try {

            if ([self createUserrTable]) {

//插入语句(会覆盖主键值已存在的数据)

                NSString *insertSql = [NSString stringWithFormat:@"insert or replace into %@ values('%@', '%@', '%@', '%@', '%@')"TABLE_NAME, user.userId , user.nickname, user.byName, user.photo, user.hxName];


//插入语句(适合没有主键的表,不会覆盖)

//        NSString *insertSql = [NSString stringWithFormat:@"INSERT INTO %@(%@, %@, %@, %@, %@) VALUES ('%@', '%@', '%@', '%@', '%@')", USER_TABLE_NAME,  ID, NAME, BYNAME, PHOTO,HXID,  user.userId , user.nickname, user.byName, user.photo, user.hxName];



                result = [self.db executeUpdate:insertSql];

                if (result) {

                    NSLog(@"用户数据插入成功");

                }

                else {

                    NSLog(@"用户数据插入失败");

                }

            }

        }

        @catch (NSException *exception) {}

        @finally {}


        [self.db close];

    }

    

    return result;

}


4,查询数据

-(User *) selectDataFromTableWithHxName:(NSString *)hxName orUserId:(NSString *)userId{

    User *user = [[User allocinit];

    if ([self.db open]) {

        @try {

            if ([self createUserrTable]) {

//查询语句,根据id查询

                NSString *sql  = [NSString stringWithFormat:@"select * from %@ where %@ = '%@'",TABLE_NAMEID, userId];

                             

                FMResultSet * rs = [self.db executeQuery:sql];

                while ([rs next]) {

                    user.userId = [rs stringForColumn:ID];

                    user.nickname = [rs stringForColumn:NAME];

                    user.byName = [rs stringForColumn:BYNAME];

                    user.photo = [rs stringForColumn:PHOTO];

                    user.hxName = [rs stringForColumn:HXID];

                }

            }

        }

        @catch (NSException *exception) {}

        @finally {}

        [self.db close];

    }

   

//    [user logInfo];

    return user;

}


5,删除数据

-(BOOL) deleteUserTableWithUser:(User *)user{

    BOOL result = NO;

    if ([self.db open]) {

        

        @try {

            if ([self createUserrTable]) {

          NSString *deleteSql = [NSString stringWithFormat:@"delete from %@ where %@ = '%@'", TABLE_NAME,  HXID, user.hxName];

        result = [self.db executeUpdate:deleteSql];


                if (result) {

                    NSLog(@"用户数据删除成功");

                }

                else {

                    NSLog(@"用户数据删除失败");

                }

            }

        }

        @catch (NSException *exception) {}

        @finally {}


        [self.db close];

    }

    

    return result;

}


6,修改数据

-(BOOL) updateUserTableWithUser:(User *)user{

    BOOL result = NO;

    if ([self.db open]) {

        

        @try {

            if ([self createUserrTable]) {

//修改语句,

          NSString *sql = [self.db executeUpdate:@"update tableName set byName = ? WHERE id = ?"user.nicknameuser.userId];

        result = [self.db executeUpdate:sql];


                if (result) {

                    NSLog(@"用户数据修改成功");

                }

                else {

                    NSLog(@"用户数据修改失败");

                }

            }

        }

        @catch (NSException *exception) {}

        @finally {}


        [self.db close];

    }

    

    return result;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值