第三方框架----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 对商业很友好.一下摘录一下几乎每 ...
随机推荐
- 什么是EDID,EDID能做什么,EDID基本介绍
转至 http://blog.csdn.net/Jkf40622/article/details/48311455 Q1: 为什么要写这篇文章? A1:在最近的工作中遇到了不少问题,其中很多都是和ED ...
- 2.1 node.js和npm的安装
1.淘宝镜像 2.通过node运行js文件 3. 通过npm安装最新的npm版本 npm install -g npm(cnpm同):npm list查看安装的模块
- postgresql学习笔记--基础篇 - copy
1. psql 导入/导出数据 psql支持文件数据导入到数据库,也支持数据库表数据导出到文件中. COPY命令和\copy 命令都支持这两类操作,但两者有如下区别: COPY 命令是SQL命令,\c ...
- 使用jQuery快速高效制作网页交互特效--初始jQuery
一. jQuery基本概念介绍 1.1 什么是jQuery一个javascript库,把常用方法写到一个js文件中,需要的时候直接调用即可学习jQuery就是学习一些方法 ...
- 记录从裸机到TensorFlow GPU版运行 的配置过程
实验室原来有一台装Ubuntu Server系统的服务器,安装有tensorflow,在使用过程中经常出现断网.死机.自动关机等毛病,忍无可忍,决定重装系统 配置如下:Dell工作站,Xeon-E5 ...
- IDEA解决maven多module出现多root的问题
背景 maven多module项目,maven窗口显示多个root 问题原因 打开父模块pom.xml文件,检查<modules/>标签,发现没有将子模块项目放到<modules/& ...
- 关于ORA-12154: TNS:could not resolve the connect identifier specified的问题
问题:net configuration assistant测试连接可以连接.但是PLSQL连接不了,报ORA-12154: TNS:could not resolve the connect ide ...
- HTML怎么块外横向剧中
HTML 块外横向剧中 在HTML中有一个块外横向剧中的代码 那就是margin:0 auto 这个能是块内元素横向剧中 剧中前: 剧中后
- QoS in RoCE (zz)
QoS in RoCE 首页分类标签留言关于订阅2018-03-22 | 分类 Network | 标签 RDMA RoCE ECN PFC Overview TCP/IP协议栈满足不了现代I ...
- mysql中Numeric类型和int类型的区别
首先记一下,Numeric数字数据只包含 数字.数字数据包括正数.负数.小数.分数和整数 例子如下: Numeric(6,2) Numeric(16,6) Numeric(16,0) 从左到右,第一个 ...