iOS 数据库第三方FMDB的简单使用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS 数据库第三方FMDB的简单使用相关的知识,希望对你有一定的参考价值。
一 FMDB的简单说明及介绍
FMDB的github地址 https://github.com/ccgus/fmdb
FMDB是一款简洁的,易用的封装库,简单介绍一下FMDB的使用
在FMDB下载文件后,工程中必须导入如下文件,并使用libsqlite3.0.tbd依赖包
FMDB同时兼容ARC和非ARC工程,会自动根据工程配置来调整相关的内存管理代码.
二.FMDB的核心类
FMDB有三个主要的类
(1)FMDatabase
一个FMDatabase对象就代表一个单独的SQLite数据库,用来执行SQL语句
(2)FMResultSet
使用FMDatabase执行查询后的结果集(即所查询结果的集合)
(3)FMDatabaseQueue
用于多线程中执行多个查询或更新,它是线程安全的
三.打开数据库
通过指定的SQLite数据库文件路径创建FMDatabase对象
path 为所创建数据库的路径
FMDatabase *db = [FMDatabase databaseWithPath:path];
if (![db open]){
NSLog(@"数据库打开失败");
}
文件路径有三种情况
(1)具体文件路径
如果不存在会自动创建
(2)空字符串@""
会在临时目录创建一个空得数据库
当FMDatabase连接关闭时,数据库文件也会被删除
(3)nil
会创建一个内存中林女士数据库,当FMDatabase连接关闭时,数据库会被销毁
四 执行更新
在FMDB中,除查询以外的所有操作都称为更新
create、drop、insert、update、delete等
使用executeUpdate:方法执行更新
示例
[db executeUpdate:@"UPDATE t_student SET age = ? WHERE name = ?;", @20, @"Jack"]
五.执行查询
查询方法
- (FMResultSet *)executeQuery:(NSString*)sql, ...
- (FMResultSet *)executeQueryWithFormat:(NSString*)format, ...
- (FMResultSet *)executeQuery:(NSString *)sql withArgumentsInArray:(NSArray *)arguments
示例代码
//
// ViewController.m
// 数据库
// Copyright © 2016年 zm. All rights reserved.
//
#import "ViewController.h"
#import "FMDB.h"
@interface ViewController ()
@property (nonatomic,strong)FMDatabase *db;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//1. 获取数据库文件的路径
NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSString *fileName= [doc stringByAppendingPathComponent:@"student.sqlite"];
//2.获取数据库
FMDatabase *db = [FMDatabase databaseWithPath:fileName];
//3.打开数据库
if ([db open]) {
//创表
BOOL result = [db executeUpdate:@"create table if not exists t_student (id integer primary key autoincrement,name text not null,age integer not null);"];
if (result) {
NSLog(@"创建表成功");
}else{
NSLog(@"创建表失败");
}
}
self.db = db;
}
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event{
[self delete];
[self insert];
[self query];
}
//删除数据
- (void)delete{
[self.db executeUpdate:@"drop table if exests t_student;"];
[self.db executeUpdate:@"create table if not exists t_student (id integer primary key autoincrement,name text not null, age integer not null);"];
}
//插入数据
- (void)insert{
for (int i = 0; i < 10; i++) {
NSString *name = [NSString stringWithFormat:@"jack-%d",arc4random_uniform(40)];
[self.db executeUpdate:@"insert into t_student (name,age) values (?,?);",name,@(arc4random_uniform(40))];
}
}
//查询
-(void)query{
//1.执行查询语句
FMResultSet *resultSet = [self.db executeQuery:@"select * from t_student"];
//2遍历结果
while ([resultSet next]) {
int ID = [resultSet intForColumn:@"id"];
NSString *name = [resultSet stringForColumn:@"name"];
int age = [resultSet intForColumn:@"age"];
NSLog(@"%d %@ %d",ID,name,age);
}
}
@end
以上是关于iOS 数据库第三方FMDB的简单使用的主要内容,如果未能解决你的问题,请参考以下文章