第三方框架----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 对商业很友好.一下摘录一下几乎每 ...
随机推荐
- JQgrid处理json数据
jqGrid 实例中文版网址:http://blog.mn886.net/jqGrid/国外官网:http://www.trirand.com/blog/jqgrid/jqgrid.html http ...
- EditPlus编译运行java文件
ok ---------------两张图完成
- framebufferfetch in vulkan
framebufferfetch在ogles上是个扩展 到vulkan这里做成一个基本功能了 对应的是subpass(对照metal) 不同renderpass不能stay on chip 只有sub ...
- Vue中img的src属性绑定
正确:<img :src=" 'files/'+value.src "> 或 <img :src="value.src">错误:< ...
- Linux 介绍与安装
- ZooInspector使用
一.工具 ZooInspector作用: 可以利用该工具图形化浏览ZK中的文件及文件夹 下载地址: https://issues.apache.org/jira/secure/attachment/1 ...
- 007——转载-MATLAB读取文件夹下的文件名
(一)参考文献:https://blog.csdn.net/liutaojia/article/details/84899923 (二)第一步:获取文件夹下某类型数据的所有文件名 主要包括三个步骤: ...
- 小白学习.NET的初期经验
对于.NET,刚开始确实很迷茫,确实,对于程序员这种职业我不是很了解,我以前是学数控的 ,对于我心目中的程序而言,程序就是我常用的那些代码,毕竟做了四五年的数控,同样都是程序,给我的了解就是都是代码: ...
- PostgreSQL10.5 - 创建索引的思考
总体感觉整个索引创建的比较慢,PostgreSQL10没有并行创建索引的功能,所以执行过程中,仅用到了服务器的一个核心来执行计算.索引创建是一个高CPU消耗的工作,CPU基本会跑满,会用到backen ...
- MondoDB介绍 Python与MongoDB用法,安装PyMongo
http://blog.csdn.net/t_ells/article/details/50265889 MongoDB最新版本下载在官网的DownLoad菜单下:http://www.mongodb ...