第三方框架----FMDB的使用
以下是SQLite API进行封装的库FMDB的简单使用 :
FMDB框架的下载地址 :https://github.com/ccgus/fmdb
代码如下 :
// ViewController.m
// FMDB的使用
//
// Created by mac1 on 15/10/7.
// Copyright (c) 2015年 www.iphonetrain.com. All rights reserved.
//
#import "ViewController.h"
#import "FMDB.h"
@interface ViewController ()
//姓名
@property (weak, nonatomic) IBOutlet UITextField *nameTextField;
//年龄
@property (weak, nonatomic) IBOutlet UITextField *ageTextField;
//"插入记录"按钮
- (IBAction)insertAction;
//"更新记录"按钮
- (IBAction)updateAction:(id)sender;
//"查询数据"按钮
- (IBAction)queryAction:(id)sender;
//数据库
@property (nonatomic,strong)FMDatabase *fmdb;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//1.打开数据库 如果不存在,则会自动创建数据库
//数据库路径
NSString *fmdbPath = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/fmdbDatabase.db"];
NSLog(@"fmdbPath = %@",fmdbPath);
_fmdb = [FMDatabase databaseWithPath:fmdbPath];
BOOL isSuccess = [_fmdb open];
if (isSuccess) {
NSLog(@"打开或创建数据库成功!");
//2.创建表
/*
//1.执行查询操作 SELECT
[db executeQuery:<#(NSString *), ...#>];
//2.执行查询以外的所有操作,INSERT INTO UPDATE DELETE CREATE
[db executeUpdate:<#(NSString *), ...#>];
*/
isSuccess = [_fmdb executeUpdate:@"CREAT TABLE IF NOT EXISTS t_user (id INTEGER NOT NULL PRIMARY KEY,name TEXT, age INTEGER )"];
if (isSuccess) {
NSLog(@"创建表成功!");
}
}
}
//插入数据 DML
- (IBAction)insertAction {
//取得插入的数据记录
NSString *name = _nameTextField.text;
NSInteger age = [_ageTextField.text integerValue];
//如果一次性需要操作大量的数据,就不要在主线程操作,会阻塞主线程
//异步往数据库插入数据
NSString *dbfile = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/aysnfmdb.db"];
FMDatabaseQueue *queue = [FMDatabaseQueue databaseQueueWithPath:dbfile];
//异步方式下 :
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
//会自己创建数据库 db
[queue inDatabase:^(FMDatabase *db) {
BOOL isSuccess = [db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_user (id integer PRIMARY KEY , name text NOT NULL ,age integer)"];
if (isSuccess) {
NSLog(@"创建表成功");
}
//插入数据
for (NSInteger i = 0; i < 2000; i++) {
//使用fmdb,sql语句中的字符串不需要写单引号
BOOL isSuccess = [db executeUpdateWithFormat:@"INSERT INTO t_user(name,age) VALUES (%@,%ld)",name,age];
if (isSuccess) {
NSLog(@"插入数据成功!");
}
else
NSLog(@"插入数据失败!");
}
}];
});
}
- (IBAction)updateAction:(id)sender {
BOOL issuccess = [_fmdb executeUpdateWithFormat:@"UPDATE t_user SET name = %@ WHERE id = 1",@"大王"];
if (issuccess) {
NSLog(@"更新数据成功");
}
else{
NSLog(@"更新数据失败");
}
}
- (IBAction)queryAction:(id)sender {
FMResultSet *result = [_fmdb executeQueryWithFormat:@"SELECT * FROM t_user"];
while (result.next) {
// 取出一条数据
NSString *name = [result stringForColumn:@"name"];
int age = [result intForColumn:@"age"];
NSLog(@"name = %@ age = %d",name,age);
/*
可以通过下标取数据
NSString *name = [result stringForColumnIndex:1];
*/
}
}
@end
第三方框架----FMDB的使用的更多相关文章
- iOS-数据持久化-第三方框架FMDB的使用
FMDB简单介绍 一.简单说明 1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来更加面向对象,省去了 ...
- 第三方框架FMDB
摘要:关键点:创建.插入.查询.数据格式化 第三方框架FMDB -------------------------------------------------------------------- ...
- [iOS]数据库第三方框架FMDB详细讲解
[iOS]数据库第三方框架FMDB详细讲解 初识FMDB iOS中原生的SQLite API在进行数据存储的时候,需要使用C语言中的函数,操作比较麻烦.于是,就出现了一系列将SQLite API进行封 ...
- SQLite数据库框架--FMDB简单介绍
1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码 对比 ...
- FMDB第三方框架
FMDB是同AFN,SDWebImage同样好用的第三方框架,它以OC的方式封装了SQLite的C语言API,使得开发变得简单方便. 附上github链接https://github.com/ccgu ...
- 第三方库FMDB的使用
1.FMDB简介 什么是FMDB FMDB是iOS平台的SQLite数据库框架,FMDB以OC的方式封装了SQLite的C语言API. 为什么使用FMDB 使用起来更加面向对象,省去了很多麻烦.冗余的 ...
- iOS开发--SQLite重要框架FMDB的使用
什么是FMDB: FMDB是一个和iOS的SQLite数据库操作相关的第三方框架.主要把C语言操作数据库的代码用OC进行了封装.使用者只需调用该框架的API就能用来创建并连接数据库,创建表,查询等. ...
- iOS技术面试07:第三方框架
1ios框架分为:cocoa Touch:UIKit.Foundation.附属框架 Media:OpenGL ES.EAGL.Quartz.Core Animation.Core Audio. ...
- iOS-常用的第三方框架的介绍
写iOS 程序的时候往往需要很多第三方框架的支持,可以大大减少工作量,讲重点放在软件本身的逻辑实现上. GitHub 里面有大量优秀的第三方框架,而且 License 对商业很友好.一下摘录一下几乎每 ...
随机推荐
- Vue界面中关于APP端回调方法问题
在混合开发中,HTML界面经常性的需要调用APP端提供的原生方法,而且在很多时候,APP端需要各种回调,如果将所有的回调方法写在内部,不是很方便,而且有些时候,APP端需要定义一些主动触发HTML界面 ...
- java中使用redis --- Set集合的简单应用
1.java代码 public class RedisTest01 { public static void main(String[] args){ // connect redis server ...
- Python基本的语法知识
1. 编程语言的介绍 低级语言:机器语言--------计算机内部只能接受二进制代码,故用0或者1表示的指令称为机器指令,全部的机器指令构成了计算机的机器语言. 汇编语言--------实质上跟机器语 ...
- 什么是Log4j,Log4j详解!
由于时间紧急,自己就不写了.一下转载链接: https://www.cnblogs.com/ITtangtang/p/3926665.html
- 获取历史K线数据的几个方法
1.通过已有的股票交易软件下载数据,如果他们是开源结构的,就可以解析他们的K线数据. 2.在互联网上抓取数据 int iStockCode;CString strUrl; 通过OpenUrl.Read ...
- VS下字符串与数组互相装换
1.分割字符串IdStr为int数组Ids int[] Ids = Array.ConvertAll<string, int>(IdStr.Trim().Split(','), deleg ...
- 使用 Java 创建聊天客户端-2
1.项目截图 java聊天核心代码: MyJavaChatClient ================================================================ ...
- CSP初赛复习
初赛复习 初赛一定要过啊,否则付出的那么多都白搭了! while(1) ++csp.rp,++csp.luck,++csp.scores; 历史 2020年开始,除NOIP以外的NOI系列其他赛事(包 ...
- 7、transformation和action2
一.transformation开发实战 1.map: 将集合中每个元素乘以2 使用map算子,将集合中的每个元素都乘以2 map算子,是对任何类型的RDD,都可以调用的,在Java中,map算子接收 ...
- java file 常用操作
File file = new File("D:\\javaClass\\image"); // 测试此抽象路径名表示的文件或目录是否存在. // 当且仅当此抽象路径名表示的文件或 ...