iOS开发篇(八)FMDB的使用与介绍1

今天小编为大家带来FMDB的使用,其实小编也是小白

FMDB是基于SQLite的一种第三方框架,以面向对象的思想去使用数据库,且可以写SQLite语句。


一、介绍数据库的三大核心类

① FMDatabase:它是一个数据库对象类,每实例一个数据库对象代表着一个数据库

② FMResultSet:它是一个结果集,用来接收DML语句的返回值;

③ FMDatabaseQueue:它是数据库操作的队列(线程)


二、介绍数据库的使用

(1)FMDataBase

直接上代码---->

// 1.获取沙盒Document文件夹路径

NSString *filePath = [[[NSSearchPathForDirectoriesInDomains] NSDocumentDirectory, NSUserDomainMask, Yes] lastObject] stringByAppendingPathComponent];

// 2.创建数据库对象

FMDatabase *db = [FMDatabase  dataBaseWithPath: filePath];

if([db open]){

NSLog(@"数据库创建成功");

// 2.1建立表格

Bool  result = [db  excuteUpDate:@" create table if not exists t_student (id integer primary key autoincrement, name text, age integer;)"];

if(result){

NSLog(@"建表成功");

}else{

NSLog(@"建表失败");

}

}else{

NSLog(@"数据库创建失败");

}


(2) FMResultSet

先来介绍一下FMDB常用的两个API:

① excuteUpDate: 增删改用这个API

eg:[db excuteUpDate:@" insert into t_student  (name, age) values (? , ?); ",@20, @"WADE"];

② excuteQuery:  查询操作用这个API

eg:FMResultSet *rst =  [db  excuteQuery:@" select * from t_student; "];


FMResultSet的结果是一个对象,如果查询具体的字段内容,需要执行下面的操作:

while([ rst.next ]){

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

int age = [rst intForColumn:@"age"];

}


(3) FMDatabaseQueue

该类主要负责数据的安全性问题:

前面所写的创建数据库对象只适用于单一操作,如果对数据库对象是多个类共同引用,可能会造成数据库数据混乱。

因此我们在开发中应该使用FMDatabaseQueue对象来实现数据库对象实利的创建。

直接上代码:

// 1.获取沙盒Document文件夹路径

NSString *filePath = [[[NSSearchPathForDirectoriesInDomains] NSDocumentDirectory, NSUserDomainMask, Yes] lastObject] stringByAppendingPathComponent];

// 2.创建队列对象

FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath: filePath];

// 3.创建表

queue  initDatabase:^(FMDatabase *db){// 改block块内部已经自动打开数据,因此之间常见表格变可

Bool  result = [db  excuteUpDate:@" create table if not exists t_student (id integer primary key autoincrement, name text, age integer;)"];

if(result){

NSLog(@"建表成功");

}else{

NSLog(@"建表失败");

}

}






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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值