sqlite数据库的基本操作基于FMDatabase(创建数据库,创建表,对标进行增,删,改,查)

要使用FMDatabase进行数据库的操作,我们先得导入FMDatabase这个封装好的包(下载地址:https://github.com/ccgus/fmdb)

然后在要执行数据库操作的文件中引入 头文件:#import "FMDatabase.h" 

再在 Frameworks中导入libsqlite3.0.dylib

准备工作就绪,话不多说看代码:

 

① 

因为数据库的创建是在应用程序的沙盒路径下,所以先得获得应用程序的沙盒路径

//应用程序的沙盒路径

 

- (NSString *) dataFilePath

{

    NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *document = [path objectAtIndex:0];

    NSLog(@"%@ ..............     ",document);

    return [document stringByAppendingPathComponent:@"StudentData.sqlite"];

}

 

创建数据库,以及一个studentList表

 

- (void)createTable

 

{

    NSFileManager *fileManager = [NSFileManager defaultManager];

    FMDatabase *db = [FMDatabase databaseWithPath:[self dataFilePath]];

    if (![fileManager fileExistsAtPath:[self dataFilePath]]) {

        //"还未创建数据库,现在正在创建数据库"

        if ([db open]) {

//数据库创建完成,创建studentList表(包括 id,age,name,address这几个属性)

            NSString *sqlCreateTable =  [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('%@' INTEGER PRIMARY KEY AUTOINCREMENT, '%@' TEXT, '%@' TEXT, '%@' TEXT)",@"studentList",@"id",@"age",@"name",@"address"];

            BOOL res = [db executeUpdate:sqlCreateTable];

            if (!res) {

                NSLog(@"error when creating db table");

            } else {

                NSLog(@"success to creating db table");

            }

            [db close];  

        }

    }

    NSLog(@"FMDatabase:---------%@",db);

}

 

 

//对studentList进行“增”操作

 

 

-(void)AddStudent:(NSString *)name age:(NSString *)age address:(NSString *)address

{

    FMDatabase *db = [FMDatabase databaseWithPath:[self dataFilePath]];

    if ([db open]) {

        NSString *insertSql1= [NSString stringWithFormat:

                               @"INSERT INTO '%@' ('%@', '%@', '%@') VALUES ('%@', '%@', '%@')",

                               @"studentList", @"age", @"name", @"address", age, name, address];

        BOOL res = [db executeUpdate:insertSql1];

        if (!res) {

            NSLog(@"error when insert db table");

        } else {

            NSLog(@"success to insert db table");

        }

        [db close];

        

    }

}

//对studentList进行“改”操作

-(void)updateFromStudentList:(NSString *)oldName newName:(NSString *)newName

{

    FMDatabase *db = [FMDatabase databaseWithPath:[self dataFilePath]];

    if ([db open]) {

        NSString *updateSql = [NSString stringWithFormat:

                               @"update  %@ set %@ = '%@' where %@ = '%@'",

                               @"studentList",   @"address",  newName ,@"name",  oldName];

        BOOL res = [db executeUpdate:updateSql];

        if (!res) {

            NSLog(@"error when update db table");

        } else {

            NSLog(@"success to update db table");

        }

        [db close];

    }

}

//对studentList进行“删”操作

-(void)deleteStudent:(NSString *)name

{

    FMDatabase *db = [FMDatabase databaseWithPath:[self dataFilePath]];

    if ([db open]) {

        

        NSString *deleteSql = [NSString stringWithFormat:

                               @"delete from %@ where %@ = '%@'",

                               @"studentList", @"name", name];

        BOOL res = [db executeUpdate:deleteSql];

        

        if (!res) {

            NSLog(@"error when delete db table");

        } else {

            NSLog(@"success to delete db table");

        }

        [db close];

        

    }

}

//对studentList进行“查”操作

-(NSMutableArray *)selectStudents

{

    NSMutableArray * array = [[NSMutableArray alloc] init];

    FMDatabase *db = [FMDatabase databaseWithPath:[self dataFilePath]];

    if ([db open]) {

        NSString * sql = [NSString stringWithFormat:

                          @"SELECT * FROM %@  order by age desc",@"studentList"];

        FMResultSet * rs = [db executeQuery:sql];

        while ([rs next]) {

            NSString * name = [rs stringForColumn:@"name"];

            NSString * age = [rs stringForColumn:@"age"];

            NSString * address = [rs stringForColumn:@"address"];

            NSDictionary * dic = [[NSDictionary alloc] initWithObjectsAndKeys:name,@"name",age,@"age",address,@"address", nil];

            [array addObject:dic];

        }

        [db close];

    }

    return array;

}

ios开发技术,提交审核讨论群 加qq群:695614778 一起讨论

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

义中

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值