• <fieldset id="8imwq"><menu id="8imwq"></menu></fieldset>
  • <bdo id="8imwq"><input id="8imwq"></input></bdo>
    最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
    問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
    當前位置: 首頁 - 科技 - 知識百科 - 正文

    fmdb(FMDatabase)數據庫總結

    來源:懂視網 責編:小采 時間:2020-11-09 15:33:13
    文檔

    fmdb(FMDatabase)數據庫總結

    fmdb(FMDatabase)數據庫總結:這段時間公司在做一個新的應用,用到了數據庫。在網上找了一些資料,最后決定用fmdb來做。主要是用起來比較簡單,適合剛接觸數據庫這方面的人。 一、步 首先是創建數據庫: (NSString*)filePath:(NSString *)fileName { NSString *path
    推薦度:
    導讀fmdb(FMDatabase)數據庫總結:這段時間公司在做一個新的應用,用到了數據庫。在網上找了一些資料,最后決定用fmdb來做。主要是用起來比較簡單,適合剛接觸數據庫這方面的人。 一、步 首先是創建數據庫: (NSString*)filePath:(NSString *)fileName { NSString *path

    這段時間公司在做一個新的應用,用到了數據庫。在網上找了一些資料,最后決定用fmdb來做。主要是用起來比較簡單,適合剛接觸數據庫這方面的人。 一、步 首先是創建數據庫: (NSString*)filePath:(NSString *)fileName { NSString *path=NSHomeDirectory(); /

    這段時間公司在做一個新的應用,用到了數據庫。在網上找了一些資料,最后決定用fmdb來做。主要是用起來比較簡單,適合剛接觸數據庫這方面的人。

    一、步 首先是創建數據庫:

    +(NSString*)filePath:(NSString *)fileName
    {

    NSString *path=NSHomeDirectory();


    //拼接路徑Library/Caches
    path=[path stringByAppendingPathComponent:@"Library/Caches"];
    NSLog(@"path=%@",path);
    NSFileManager *fm=[NSFileManager defaultManager];
    //檢查指定的緩存目錄是否存在
    if ([fm fileExistsAtPath:path]) {
    //檢查要保存的文件名是否合法
    if (fileName&& [fileName length]!=0) {
    //拼接全路徑
    path=[path stringByAppendingPathComponent:fileName];
    }
    }
    else{
    NSLog(@"緩存目錄不存在");
    }
    return path;
    }


    -(id)init
    {

    DataItem *item = [[DataItem alloc] init];
    NSLog(@"090909090==%@",item.destination);
    if (self=[super init]) {
    //實例化第三方數據庫操作類對象
    //如果user.db文件不存在就創建新的
    //存在就直接使用
    fmdb=[[FMDatabase databaseWithPath:[Database filePath:@"user.db"]] retain];
    //嘗試打開數據庫
    if ([fmdb open]) {
    //創建數據表
    [self createTable];
    }
    }
    return self;
    }

    二、 創建數據庫表 需要建多個表所以用一個數組來保存建表語句,然后遍歷數組執行建表語句


    NSArray *reportinfoArray = [NSArray arrayWithObjects:@"CREATE TABLE IF NOT EXISTS report_info (report_id integer Primary Key Autoincrement,report_name Varchar(1024) DEFAULT NULL,user_id integer DEFAULT NULL“,nil];

    以report_id為自增長的主建 在建表語句中將其聲明為主建,在表的插入過程中 repord_id回從1開始自動增長不需要對其進行賦值。

    for (NSString *sql in reportinfoArray) {
    //執行sql語句
    //創建表,增,刪,改都用這個方法
    if ([fmdb executeUpdate:sql]) {
    NSLog(@"已創建");

    }
    else{
    NSLog(@"創建表失敗:%@",[fmdb lastErrorMessage]);;
    }
    }


    三,插入 可一條一條插入也可批量插入

    -(void)insertItem:(DataItem *)item
    {
    if ([self existsItem:item]) {
    return;
    }else{


    NSString *sql=[NSString stringWithFormat:@"insert into report_info (report_name,user_id,any_invoice,allowance,advance_payment,report_aim,report_starttime,report_endtime,destination) values (?,?,?,?,?,?,?,?,?)"];
    //變參方法,每個?號代表一個字段值,所有參數必須為對象類類型
    if (sql) {
    [fmdb executeUpdate:sql,item.report_name,item.user_id,item.any_invoice,item.allowance,item.advance_payment,item.report_aim,item.report_starttime,item.report_endtime,item.destination];
    //獲取最后一個插入的數據的主鍵
    markID = [fmdb lastInsertRowId];
    }
    else{
    NSLog(@"插入失敗 :%@",[fmdb lastErrorMessage]);
    }


    }
    }
    批量插入
    -(void)insertStayArray:(NSArray *)array
    {
    //開始批量操作
    [fmdb beginTransaction];
    for (DataItem *item in array) {
    [self insertStayItem:item];
    }
    //提交所有修改
    [fmdb commit];
    }

    注釋:在插入過程中遇到了一個問題 再插入nsinteger 類型的數據的時候 程序會崩潰 后來的解決辦法是[NSString stringWithFormat:@"%d",item.report_id] 將其轉化為nsstring 類

    型在進行插入。

    四、刪除相對簡單 只需要根據其主鍵后按照某些特定條件進行刪除

    -(void)deletestay_info:(int)stay_id
    {
    NSString*delete=[NSString stringWithFormat:@"DELETE FROM stay_info WHERE stay_id = %d",stay_id];
    BOOL a=[fmdb executeUpdate:delete];
    if (a) {
    NSLog(@"%d,刪除成功!",stay_id);
    }
    }



    五、查找 也是根據某些特定的條件進行查找

    -(DataItem*)getStay_info:(int)stay_id
    {

    NSString *sql=[NSString stringWithFormat:@"select * from stay_info where stay_id=%d",stay_id];


    //執行查詢
    FMResultSet *rs=[fmdb executeQuery:sql];
    //如果有記錄
    DataItem *item=[[[DataItem alloc] init] autorelease];

    while ([rs next]) {
    //此方法是一組方法
    //根據字段類型選擇不同方法
    item.stay_id = [rs longForColumn:@"stay_id"];
    item.stay_endtime = [rs stringForColumn:@"stay_endtime"];
    item.stay_company_pay = [rs stringForColumn:@"stay_company_pay"];
    }

    return item;

    }


    六、修改 根據要修改的內容判斷滿足怎樣的條件需要修改


    -(void)alerttraffic_info:(DataItem *)item
    {
    NSLog(@"traffic_destination = %@",item.traffic_destination);

    NSLog(@"traffic_id=%d",item.traffic_id);
    NSString*Name=[NSString stringWithFormat:@"UPDATE traffic_info SET traffic_kind = '%@' WHERE traffic_id = %d",item.traffic_kind,item.traffic_id];
    [fmdb executeUpdate:Name];

    NSString*trafficDate=[NSString stringWithFormat:@"UPDATE traffic_info SET traffic_date = '%@' WHERE traffic_id = %d",item.traffic_date,item.traffic_id];
    [fmdb executeUpdate:trafficDate];

    }

    聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

    文檔

    fmdb(FMDatabase)數據庫總結

    fmdb(FMDatabase)數據庫總結:這段時間公司在做一個新的應用,用到了數據庫。在網上找了一些資料,最后決定用fmdb來做。主要是用起來比較簡單,適合剛接觸數據庫這方面的人。 一、步 首先是創建數據庫: (NSString*)filePath:(NSString *)fileName { NSString *path
    推薦度:
    標簽: 時間 數據 數據庫
    • 熱門焦點

    最新推薦

    猜你喜歡

    熱門推薦

    專題
    Top
    主站蜘蛛池模板: 无码AV动漫精品一区二区免费| 亚洲国产午夜中文字幕精品黄网站| 精品综合久久久久久88小说| 精品久久久久久国产潘金莲| 欧美精品黑人粗大| 久久久国产精品福利免费 | 麻豆精品久久久一区二区| 一级做a爰黑人又硬又粗免费看51社区国产精品视 | 欧美亚洲色综久久精品国产| 国内精品久久久久久久影视麻豆 | 亚洲国产成人一区二区精品区| 66精品综合久久久久久久| 国产精品丝袜一区二区三区| 精品不卡一区二区| 成人午夜精品亚洲日韩| 成人国产精品一区二区网站| 久久精品午夜一区二区福利| 伊人久久无码精品中文字幕| 久热精品视频第一页| 久久精品成人免费国产片小草| 国产叼嘿久久精品久久| 91嫩草亚洲精品| 91亚洲精品自在在线观看| 欧洲精品视频在线观看| 久久精品国产影库免费看| 国产成人久久精品区一区二区| 国产欧美精品AAAAAA片| 色偷偷88888欧美精品久久久| 亚洲精品少妇30p| 久久亚洲国产成人精品性色| 午夜精品乱人伦小说区| 人妻少妇乱子伦精品| 日产精品一线二线三线芒果| 欧美精品欧美人与动人物牲交| 日韩精品国产另类专区| 精品国产乱码一区二区三区| 久久99精品国产自在现线小黄鸭| 精品国产a∨无码一区二区三区 | 久久91精品综合国产首页| 久久久久这里只有精品| 亚洲AV蜜桃永久无码精品|