国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

iOS開發之數據庫FMDB

2019-11-14 19:18:39
字體:
來源:轉載
供稿:網友

iOS開發之數據庫FMDB

  1.簡介

需求作用:  如果需要保存大量的結構較為復雜的數據時候, 使用數據庫, 例如交規考試項目

常用的數據庫:

  (1)Microsoft SQL Server 2000/2008, 中小企業使用較多

  (2)Oracle 比較復雜, 大企業使用較多

  (3)MySQL數據庫, 網站使用較多

  (4)sqlite:  本地數據庫, 訪問數據足夠快, 直接訪問文件

         足夠簡單, 功能相對其他數據庫軟件不是特別齊全, 足夠用了

          足夠小, 系統不超過1M, 適合在移動端上使用

  2. MesaSQlite使用

實例:  使用數據存儲存儲一個班上學生的信息

      學號sid  用戶名username  密碼passWord 成績score

      1501    zhangsan      123      100

      1502    lilei         321      90

      1503    wangwu        222      80 

(1)創建數據庫 

(2)創建數據表

(3)設計數據表(添加多個字段/列)

(4)數據庫常用操作

  增,刪,改,查

  3. SQL結構化查詢語句

  

SQL, Structure Query Language, 結構化查詢語言, 作用就是操作數據庫(創建表, 數據增刪改查)

(1)創建數據表

create table StudentInfo(sid integer, username varchar(20), password varchar(20),score varchar(20)) create table if not exists StudentInfo(sid integer, username varchar(20), password varchar(20),score varchar(20)) 

(2)插入數據

insert into StudentInfo(sid,username,password,score) values(1503,'wangwu','222','80')

(3)查詢數據

<1>查詢表格中所有數據   

select * from StudentInfo;

<2>查詢指定的字段

實例:  查詢所有名字username

select username from StudentInfo

<3>根據指定的條件進行查詢

實例: 查找name為zhansan的所有信息

 

select * from StudentInfo where username='zhangsan' 

<4>根據多個條件進行查詢

實例: 查找uname為zhansan, 并且性別為boy的所有信息

select * from StudentInfo where username='zhangsan' and password='123'

<5>查詢后需要排序

//根據age升序排列select * from StudentInfo order by score //根據age降序排列select * from StudentInfo order by score desc

<6>獲取數據行數

select count(*) from StudentInfo 

(4)修改數據

update StudentInfo set score='100'  where username='zhangsan';

(5)刪除數據

delete from StudentInfo where sid='1503'

  4. FMDB操作數據庫

 

(1)配置 

  導入文件,

  添加二進制庫 libsqlite3.dylib,

  包含頭文件#import "FMDatabase.h"

 

  5. 數據庫在項目中使用-單例設計模式

(1)單例的聲明與實現

#import <Foundation/Foundation.h>#import "FirstLevelModel.h"#import "SecondLevelModel.h"#import "LeafLevelModel.h"@interface DatabaseManager : NSObject//獲取單例對象方法+(id)shareINstance;//獲取第一級目錄-(NSArray *)firstLevels;//獲取第二級目錄-(NSArray *)secondLevels:(NSString *)str;//獲取第三級目錄-(NSArray *)leafLevels:(NSString *)str;@end
#import "DatabaseManager.h"#import "FMDatabase.h"@interface DatabaseManager(){    FMDatabase *_database;}@end@implementation DatabaseManager//獲取單例對象方法+(id)shareINstance{    static DatabaseManager *dc = nil;    if (dc==nil) {        dc = [[DatabaseManager alloc] init];    }    return dc;}- (id)init{    if (self = [super init]) {        [self openDatabase];    }    return self;}- (void)openDatabase{    NSString *path = [[NSBundle mainBundle] pathForResource:@"data.sqlite" ofType:nil];    _database = [[FMDatabase alloc] initWithPath:path];    if (!_database.open) {        NSLog(@"打開失敗");    }}//獲取第一級目錄- (NSArray *)firstLevels{    NSString *sql = @"select * from firstlevel";    FMResultSet *resultSet = [_database executeQuery:sql];    NSMutableArray *muArr = [[NSMutableArray alloc] init];    while ([resultSet next]) {        //        FirstLevelModel *model = [[FirstLevelModel alloc] init];        model.pid = [resultSet stringForColumn:@"pid"];        model.pname = [resultSet stringForColumn:@"pname"];        model.pcount = [resultSet stringForColumn:@"pcount"];        [muArr addObject:model];            }    return muArr;}//獲取第二級目錄-(NSArray *)secondLevels:(NSString *)str{    NSString *sql = @"select * from secondlevel where pid=?";    FMResultSet *resultSet = [_database executeQuery:sql,str];    NSMutableArray *muArr = [[NSMutableArray alloc] init];    while ([resultSet next]) {        //        SecondLevelModel *model = [[SecondLevelModel alloc] init];        model.pid = [resultSet stringForColumn:@"pid"];        model.sid = [resultSet stringForColumn:@"sid"];        model.sname = [resultSet stringForColumn:@"sname"];        model.scount = [resultSet stringForColumn:@"scount"];        [muArr addObject:model];            }    return muArr;}//獲取第三級目錄-(NSArray *)leafLevels:(NSString *)str{    NSString *sql = @"select * from leaflevel where sid=?";    FMResultSet *resultSet = [_database executeQuery:sql,str];    NSMutableArray *muArr = [[NSMutableArray alloc] init];    while ([resultSet next]) {        //        LeafLevelModel *model = [[LeafLevelModel alloc] init];        model.pid = [resultSet stringForColumn:@"pid"];        model.sid = [resultSet stringForColumn:@"sid"];        model.sname = [resultSet stringForColumn:@"sname"];        model.pname = [resultSet stringForColumn:@"pname"];        model.mquestion = [resultSet stringForColumn:@"mquestion"];        model.mdesc = [resultSet stringForColumn:@"mdesc"];        model.mid = [resultSet stringForColumn:@"mid"];        model.manswer = [resultSet stringForColumn:@"manswer"];        model.munknow = [resultSet stringForColumn:@"munknow"];        model.mtype = [resultSet stringForColumn:@"mtype"];        model.mimage = [resultSet stringForColumn:@"mimage"];        [muArr addObject:model];            }    return muArr;}@end

點擊下載代碼


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 浦东新区| 韶山市| 离岛区| 廊坊市| 漠河县| 孝义市| 全椒县| 新闻| 乐至县| 北辰区| 广平县| 洞头县| 合江县| 山阳县| 山阴县| 同德县| 桃园县| 孟津县| 嵊州市| 武定县| 布拖县| 泽州县| 福泉市| 本溪市| 梅河口市| 思茅市| 营口市| 芜湖市| 滨州市| 江西省| 宽城| 江油市| 寻乌县| 新田县| 上饶市| 五大连池市| 天台县| 竹山县| 五莲县| 泸西县| 荔浦县|