第三方框架----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 对商业很友好.一下摘录一下几乎每 ...
随机推荐
- npm link的使用
npm link的使用 https://www.jianshu.com/p/aaa7db89a5b2
- Mybatis接口中传递多个参数
1.接口 public interface MemberMapper { public boolean insertMember(Members member); public Members sel ...
- vue2 单一事件中心管理组件通信
- Django REST framework+Vue 打造生鲜电商项目(笔记三)
(PS:转载自http://www.cnblogs.com/derek1184405959/p/8810591.html 有修改) 一.drf的过滤 (1)添加到app里面 INSTALLED_AP ...
- PostgreSQL10.5 - 创建索引的思考
总体感觉整个索引创建的比较慢,PostgreSQL10没有并行创建索引的功能,所以执行过程中,仅用到了服务器的一个核心来执行计算.索引创建是一个高CPU消耗的工作,CPU基本会跑满,会用到backen ...
- 九.配置SMB共享(Samba共享)
• Samba 软件项目 – 用途:为客户机提供共享使用的文件夹 – 协议:SMB(TCP 139).CIFS(TCP 445) • 所需软件包:samba • 系统服务:smb 管理共享账号 ...
- 三十九.NoSQL概述 部署Redis服务 、 部署LNMP+Redis
1. 搭建Redis服务器 在主机 192.168.4.50 上安装并启用 redis 服务 设置变量test,值为123 查看变量test的值 1.1 搭建redis服务器 1.1.1 安装re ...
- Java学习日记——基础篇(二)基本语法
变量 变量和常量是程序处理的两种基本数据对象,变量是程序的基本组成单位 变量的目的就是确定目标并提供存放空间 public class Hello { public static void main( ...
- 如何利用awk计算文件某一列的平均值?
[root@master yjt]# cat yjt.sh #!/bin/bash awk -v field="$1" '{sum+=$field; n++;}END {if (n ...
- WORD转HTML-python第三方包Mammoth(官方文档翻译)
Mammoth 官方 Mammoth可用于将.docx文档(比如由Microsoft Word创建的)转换为HTML.Mammoth致力于通过文档中的语义信息生成简洁的HTML,而忽略一些其他细节.例 ...