国产探花免费观看_亚洲丰满少妇自慰呻吟_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

點擊下載代碼


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 三原县| 突泉县| 湘潭县| 美姑县| 望城县| 资讯 | 新干县| 马关县| 修文县| 衡东县| 金秀| 翼城县| 米泉市| 固阳县| 伽师县| 华容县| 江西省| 龙山县| 安吉县| 嘉义市| 革吉县| 阿拉善右旗| 宁远县| 获嘉县| 资中县| 台湾省| 教育| 无棣县| 信阳市| 兴安盟| 手游| 广丰县| 高淳县| 延寿县| 襄汾县| 鄂州市| 岑巩县| 额济纳旗| 盖州市| 永寿县| 萍乡市|