第三方框架----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 对商业很友好.一下摘录一下几乎每 ...
随机推荐
- 关于WAMP的apache 人多了就访问非常卡的问题解决方法
一直用WAMP 但人多了(在线人数上了500) 就卡得不得了 而这时服务器负载却很小 CPU15% 内存25% 整了好久都没个结果 偶然看到一篇教程 原来是连接数限制的问题 改了就速度飞快了 打开ap ...
- jquery.lazyload(懒加载)的使用与配置
jquery lazyload是一款基于jquery框架的图片延迟加载应用,它可以让用户访问页面的时候只显示当前屏幕所示的图片.原理为利用JS替换图片src为loading图片,新data-origi ...
- [51Nod 1238] 最小公倍数之和 (恶心杜教筛)
题目描述 求∑i=1N∑j=1Nlcm(i,j)\sum_{i=1}^N\sum_{j=1}^Nlcm(i,j)i=1∑Nj=1∑Nlcm(i,j) 2<=N<=10102<=N ...
- MySQL数据库中常用的引擎有几种?有什么区别?
1.常用的3种 2.InnoDB Myisam Memory 3.InnoDB跟Myisam的默认索引是B+tree,Memory的默认索引是hash 区别: 1.InnoDB支持事务,支持外键,支 ...
- P4062 [Code+#1]Yazid 的新生舞会
思路:分治 提交:2次 错因:数组开小 题解: 我们枚举一下众数\(x\). 设\(s[n]=\sum_{i=1}^n [a[i]==x]\) 那么对于区间\((l,r]\),有\(s[r]-s[l] ...
- Linux操作系统常用命令合集——第六篇-压缩和归档操作(16个命令)
1.gzip [命令作用] 压缩和解压缩文件 gzip/guzip/zcat zcat:不显式展开的前提下查看文本文件内容 zdiff/zgrep/zless/zmore [命令语法] gzip ...
- exam9.3
# 用 户 名 公园 计划 抽卡 总分 19 859乔屹 100 03:15:05 40 03:14:01 140 03:15:05 emm 怎么讲 T2我把自己优化掉了40分 优 ...
- springBoot学习(一):初学Thymeleaf
这一部分的代码是基于大神的代码,只是原本的代码是有错的,只自己记录一下自己更改之后的代码和自己的理解. 使用Spring Initzal创建项目,最后代码结构如下,我对Spring及其相关之事还是全然 ...
- 小程序开发--API之登录授权逻辑
小程序登录授权获取逻辑 原生的小程序提供许多开放接口供使用者开发,快速建立小程序内的用户体系. 下面将小程序校验.登录.授权.获取用户信息诸多接口串联起来,以便更直观的认识到这些接口是如何在实际应用中 ...
- [WEB安全]phpMyadmin后台任意文件包含漏洞分析(CVE-2018-12613)
0x00 简介 影响版本:4.8.0--4.8.1 本次实验采用版本:4.8.1 0x01 效果展示 payload: http://your-ip:8080/index.php?target=db_ ...