iOS-Senior19-FMDB第三方应用

代码版

//第一步:引入框架,引入支持类库(libsqlite3.0添加)

#import <FMDB.h>

//声明数据库对象

@property (nonatomic,strong) FMDatabase *dataBase;

//存储路径

@property (nonatomic,strong) NSString *filePath;

###############创建表######################

- (void) createTable {

//第一步:创建sql语句

NSString *createSql = @"create table if not exists t_student(id integer primary key autoincrement not null,name text not null,age integer not null,sex text not null)";

//第二步:找到存储路径

NSString *document = [NSSearchPathForDirectoriesInDomains (NSDocumentDirctory,NSUserDomainMask,YES) objectAtIndex:0];

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

self.filePath = [document stringByAppendingPathComponent:@"student.sqlite"];

//第三步:使用路径初始化FMDB对象

self.dataBase = [FMDatabase databaseWithPath:self.filePath];

//第四步:(数据库执行相关的操作)需要判断数据库打开的时候进行的执行语句

if([self.dataBase open]){

BOOL result = [self.dataBase executeUpdate:createSql];

if(result){

NSLog(@"建表成功");

}else {

NSLog(@"建表失败");

}

}

//第五步:关闭数据库

[self.dataBase close];

}

############添加数据####################

//打开数据库

[self.dataBase open];

//第二步:进行相关的操作

NSArray *nameArray = [NSArray arrayWithObjects :@"mbboy",@"boom sky",@"小明"];

for(int i = 0; i <nameArray.count; i++){

NSString *name = [nameArray objectAtIndex : i];

//插入语句

NSString *insertSql = @"insert into t_student(name,age,sex) values(?,?,?)";

BOOL result = [self.dataBase executeUpdate:@"insert into t_student(name,age,sex) values(?,?,?)",name,@"69",@"boy"];

if(result) {

NSLog(@"插入成功");

}else {

NSLog(@"插入失败");

}

//关闭数据库

[self.dataBase close];

}

##############更改数据######################

//打开数据库

[self.dataBase];

//给mbboy改名字

BOOL result = [self.dataBase executeUpdate : @"update t_student set name = ? where name = ?",@"孟玲旭",@"mbboy"];

if(result){

NSLog(@"更改成功");

} else {

NSLog(@"更改失败");

}

//关闭数据库

[self.dataBase close];

}

##############删除数据#######################

//打开数据库

[self.dataBase open];

//执行语句

BOOL result = [self.dataBase executeUpdate:@"delete from t_student where name = ?",@"孟玲旭"];

if(result){

NSLog(@"删除成功");

}else {

NSLog(@"删除失败");

}

[self.dataBase close];

###################查询数据###################

//打开数据库

[self.dataBase open];

//查询当前结果使用的类FMResultSet

FMResultSet *resultSet = [self.dataBase executeQuery :@"select *from t_student"];

//遍历出需要的结果内容

while([resultSet next]){

NSSting *name = [resultSet objectForColumnName :@"name"];

NSInteger age = [resultSet intForColumn:@"age"];

NSString *sex = [resultSet objectForColumnName:@"sex"];

}

//关闭数据库

[self.dataBase close];

}

##############插入很多学生####################

//以队列的形式添加数据是FMDB比较常用的添加方式

//FMDB不支持多个线程同时操作,所有一般以串行的方式实现相关的操作

[self.dataBase open];

//第一步:创建操作队列

FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:self.filePath];

//标识:记录是否操作成功

__block BOOL isSucceed = YES;

//第二步:把所需要的事件打包放在操作队列中

[queue inTransaction:^(FMDatabase *db, BOOL *rollback) {

//串行队列

isSucceed = [db executeUpdate:@"insert into t_student(name, age, sex) values (?,?,?)", @"隔壁老王", @"18", @"nan"] && isSucceed;

isSucceed = [db executeUpdate:@"insert into t_student(name, age, sex) values (?,?,?)", @"-1", @"69", @"unknow"] && isSucceed;

isSucceed = [db executeUpdate:@"insert into t_student(name, age, sex) values (?,?,?)", @"ajar", @"18", @"nan"] && isSucceed;

//如果有错误,就会将它返回

if (!isSucceed) {

//block返回的参数rollback尽行处理(bool类型的指针)

*rollback = YES;

return;

}

}];

//关闭数据库

[self.dataBase close];

时间: 2024-10-13 10:33:18

iOS-Senior19-FMDB第三方应用的相关文章

iOS中 FMDB第三方SQLite数据库 UI_20

1.什么是FMDB? FMDB是iOS平台下SQLite数据库,只不过它是OC方式封装了C语言的SQLite语句,使用起来更加面向对象 2.FMDB的优点:1.使用起来更加面向对象; 2.对比苹果自带的 Core Data 数据管理工具更加的轻量级,更加的灵活,而且FMDB支持跨平台; 3.提供多线程下的数据安全保护机制,有效地防止数据混乱 3.FMDM中重要的类: FMDBDataBase: 它代表一个数据库对象,(我们需要创建数据库对象时就使用这个类) FMDBDataBaseQueue:

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角)

iOS开发-常用第三方开源框架介绍(你了解的ios只是冰山一角) 2015-04-05 15:25 2482人阅读 评论(1) 收藏 举报开源框架 图像: 1.图片浏览控件MWPhotoBrowser       实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作.      下载:https://github.com/mwaterfall/MWPhotoBrowser目前比较活跃的社区仍旧是Github,

一些iOS常用的第三方库和控件

网络通信 1.ASIHTTPRequest 这是一个经典的老库,功能完全而强大,但已经停止更新很久了(iOS5.0停止更新,但是我最近看github上这个项目有新改动).在不同iOS版本上略微有一些小问题(提醒显示上的),所以用的时候还是稍微修改一下比较好. 下载地址:https://github.com/pokeb/asi-http-request 2.AFNetworking 轻量级的通讯类库,使用非常简单. 下载地址:https://github.com/AFNetworking/AFNe

iOS开发-常用第三方开源框架介绍

iOS开发-常用第三方开源框架介绍 图像: 1.图片浏览控件MWPhotoBrowser 实现了一个照片浏览器类似 iOS 自带的相册应用,可显示来自手机的图片或者是网络图片,可自动从网络下载图片并进行缓存.可对图片进行缩放等操作. 下载:https://github.com/mwaterfall/MWPhotoBrowser 目前比较活跃的社区仍旧是Github,除此以外也有一些不错的库散落在Google Code.SourceForge等地方.由于Github社区太过主流,这里主要介绍一下G

iOS 使用FMDB进行数据库操作

[摘要]本文介绍iOS 使用FMDB进行数据库操作,并提供详细的示例代码供参考. 1.首先要先导入第三方类库FMdatabase. 2.获得存放数据库文件的沙盒地址. View Row Code 1 +(NSString *)databaseFilePath 2 { 3   4 NSArray *filePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 5 NSStrin

ios开发FMDB导入SQLCipher加密数据库

转:http://www.2cto.com/kf/201407/315727.html [iOS]FMDB/SQLCipher数据库加解密,迁移

iOS数据库FMDB

FMDB第三方库 导入头文件 #import "FMDatabase.h" #import "FMResultSet.h" FMDatabase *_database;//数据库对象 - (void)readData{     //1.获取数据库文件的路径     NSArray *path=NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);    NSStri

IOS常用的第三方开发库

开发几个常用的开源类库及下载地址: 1.json json编码解码2.GTMBase64 base64编码解码3.TouchXML xml解析4.SFHFKeychainUtils 安全保存用户密码到keychain中5.MBProgressHUD 很棒的一个加载等待特效框架6.ASIHTTPRequest http等相关协议封装7.EGORefreshTableHeaderView 下拉刷新代码8.AsyncImageView 异步加载图片并缓存代码9.类似setting的竖立也分栏程序 10

iOS不使用第三方平台,发送推送消息

iOS不使用第三方平台,发送推送消息 先看看客户端: 需要关注两个点:一是代码部分的DeviceToken获取,且看代码 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //消息推送支持的类型 UIRemoteNotificationType types = (UIRemoteNotificationTypeBadge |U

IOS数据库FMDB增、删、改、查的使用【原创】

http://blog.it985.com/13588.html IOS数据库FMDB增.删.改.查的使用[原创] FMDB是一个XCODE的中一个轻量级的数据库,用于将网络资源存储在本地.所以,FMDB是一个很实用,很关键的知识点.在这里写了个简单的例子,基于FMDB的添删改查操作,代码可能比较乱,希望不要伤了各位的眼睛.其中添加删除更改的操作都非常简单,不需要做太多操作,只需要用到FMDB封装好的executeUpdate方法就行了. 第一步.加入sqlite3的包文件 如图所示,依次选择并