栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

[iOS开发]FMDB基本使用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

[iOS开发]FMDB基本使用

FMDB:

FMDB是一款简洁、易用的封装库。因此,在这里推荐使用第三方框架FMDB,它是对libsqlite3框架的封装,用起来的步骤与SQLite使用类似,并且它对于多线程的并发操作进行了处理,所以是线程安全的。

优点:

对多线程的并发操作进行处理,所以是线程安全的;
以OC的方式封装了SQLite的C语言API,使用起来更加的方便;
FMDB是轻量级的框架,使用灵活。

缺点:

因为它是OC的语言封装的,只能在ios开发的时候使用,所以在实现跨平台操作的时候存在局限性。

使用: 打开数据库:
NSArray *documents=NSSearchPathForDirectoriesInDomains(NSdocumentDirectory, NSUserDomainMask, YES);
NSString *documentsPath = [documents firstObject];
NSString *dbPath = [documentsPath stringByAppendingPathComponent:@"test.db"];
NSLog(@"%@", dbPath);
_database = [FMDatabase databaseWithPath:dbPath];
if ([_database open]) {
    NSLog(@"打开成功");
} else {
    NSLog(@"打开失败");
}
关闭数据库:
[_database close];
创建表:
NSString *createTableSql = @"create table if not exists Person(id integer primary key autoincrement,name text,age integer)";
BOOL success = [_database executeUpdate:createTableSql];
if (success) {
    NSLog(@"创建表成功");
} else {
    NSLog(@"创建表失败");
}
插入数据:
- (void)insert {
    if ([_database open]) {
        NSString *insertSQL = @"insert into Person (name,age) values (?,?)";
        BOOL success = [_database executeUpdate:insertSQL,@"王五",@19];
        if (success) {
            NSLog(@"插入成功");
        } else {
            NSLog(@"插入失败");
        }
        [_database close];
    }
}
修改数据:
- (void)update {
    if ([_database open]) {
        NSString *updateSQL = @"update Person set name=?,age=? where id=?";
        BOOL success = [_database executeUpdate:updateSQL, @"王五", @20, @1];
        if (success) {
            NSLog(@"更新成功");
        } else {
            NSLog(@"更新失败");
        }
        [_database close];
    }
}
删除数据:
- (void)delete {
    if ([_database open]) {
        NSString *deleteSQL = @"delete from Person where age=?";
        BOOL success = [_database executeUpdate:deleteSQL, @20];
        if (success) {
            NSLog(@"删除成功");
        } else {
            NSLog(@"删除失败");
        }
        [_database close];
    }
}
//若想删除全部数据:
- (void)deleteAll {
    if ([_database open]) {
        NSString *deleteAllSQL = @"delete from Person where 1";
        BOOL success = [_database executeUpdate:deleteAllSQL];
        if (success) {
            NSLog(@"删除成功");
        } else {
            NSLog(@"删除失败");
        }
        [_database close];
    }
}
查询数据:
- (void)select {
	if ([_database open]) {
    	NSString *selectSQL = @"select * from Person";
    	//查询返回的为一个结果集
    	FMResultSet *set = [_database executeQuery:selectSQL, @0];
    	//需要对结果集进行遍历操作
   		while ([set next]) {
    		//获取下一条记录,如果没有下一条,返回NO,跳出循环
    		//取数据
        	NSString *name = [set stringForColumn:@"name"];
        	NSInteger age = [set intForColumn:@"age"];
       	 	NSInteger ID = [set intForColumn:@"id"];
        	NSLog(@"%@, %ld, ID=%ld", name, age, ID);
    	}
    	[_database close];
    }
}
其他:

FMDB存储图片类型的数据(二进制)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/512006.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号