(iOS)读取db数据库

一般除了网络请求数据外,我们的项目中还会遇到导入本地数据库(db)。今天主要分享如何获取db数据库中的所有字段和数据。

首先我们需要导入依赖框架FMDB,将我们所需读取的db数据库拖入项目中

本地数据库

展示sql下的数据库里的数据

Navicat
CREATE TABLE "nba_star" (
  "nID" integer,
  "name" text,
  "age" integer,
  "team" text,
  "highest" integer
);

-- ----------------------------
-- Records of "nba_star"
-- ----------------------------
BEGIN;
INSERT INTO "nba_star" VALUES (1, '哈登', 28, '休斯顿火箭', 56);
INSERT INTO "nba_star" VALUES (2, '库里', 29, '金州勇士', 54);
INSERT INTO "nba_star" VALUES (3, '詹姆斯', 32, '克利夫兰骑士', 61);
INSERT INTO "nba_star" VALUES (4, '维斯布鲁克', 28, '俄克拉荷马城雷霆', 54);
INSERT INTO "nba_star" VALUES (5, '保罗', 32, '休斯顿火箭', 43);
INSERT INTO "nba_star" VALUES (6, '杜兰特', 29, '金州勇士', 54);
COMMIT;
PRAGMA foreign_keys = true;

创建模型文件nbaStarItem 和一个可读去数据的文件DCReadDBSQL

nbaStarItem.h
/* id */
@property (nonatomic, copy) NSString *nID;
/* 名字 */
@property (nonatomic, copy) NSString *name;
/* 年龄 */
@property (nonatomic, copy) NSString *age;
/* 球队 */
@property (nonatomic, copy) NSString *team;
/* 生涯最高分 */
@property (nonatomic, copy) NSString *highest;

DCReadDBSQL.h
/**
  读取db数据库中所有字段
 @return 字典
 */
+ (NSMutableDictionary *)dc_readDBColumnNameToIndexMap;

/**
 读取db数据库中所有数据
 @return 数组
 */
+ (NSMutableArray *)dc_getDBArrayWithdbArray;
DCReadDBSQL.m
#pragma mark - 读取字段
+ (NSMutableDictionary *)dc_readDBColumnNameToIndexMap
{
    NSString *table = [NSString stringWithFormat:@"select * from %@",TABLENAME];
    NSString *dbPath = [[NSBundle mainBundle]pathForResource:DBNAME ofType:@"db"];
    FMDatabase *database = [ FMDatabase databaseWithPath:dbPath];
    if (![database open]) return 0;
    // 查找表 AllTheQustions
    FMResultSet *resultSet = [database executeQuery:table];
    resultSet = [database executeQuery:table];
    
    //读取table表中所有字段
    return resultSet.columnNameToIndexMap;
}
#pragma mark - 读取数据
+ (NSMutableArray *)dc_getDBArrayWithdbArray
{
    NSString *table = [NSString stringWithFormat:@"select * from %@",TABLENAME];
    NSString *dbPath = [[NSBundle mainBundle]pathForResource:DBNAME ofType:@"db"];
    FMDatabase *database = [ FMDatabase databaseWithPath:dbPath];
    if (![database open]) return 0;
    // 查找表 AllTheQustions
    FMResultSet *resultSet = [database executeQuery:table];
    resultSet = [database executeQuery:table];
    
    NSMutableArray *array = [NSMutableArray array];
    // 循环逐行读取数据resultSet next
    while ([resultSet next])
    {
        nbaStarItem *item = [[nbaStarItem alloc] init]; //给模型赋值
        item.nID = [resultSet stringForColumn:@"nID"];
        item.name = [resultSet stringForColumn:@"name"];
        item.age = [resultSet stringForColumn:@"age"];
        item.team = [resultSet stringForColumn:@"team"];
        item.highest = [resultSet stringForColumn:@"highest"];
        
        [array addObject:item];
    }
    
    [database close]; //关闭
    
    return array;
}
RUN.........
断点图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,590评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,808评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,151评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,779评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,773评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,656评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,022评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,678评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,038评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,756评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,411评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,005评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,973评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,053评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,495评论 2 343