• FMDB使用


    FMDBManager.h
    
    #import <Foundation/Foundation.h>
    #import "FMDatabase.h"
    
    @interface FMDBManager : NSObject
    {
        NSString *dataBasePath;
        FMDatabase * fmdbDataBase;//数据库对象
        BOOL isFMDBopen;
    }
    
    + (FMDBManager *)sharedFMDB;
    
    // 创建表
    -(void)createTable;
    
    // 插入记录
    -(void)insertTable;
    
    // 获取所有记录
    -(NSMutableArray *)getList;
    
    //删除某人所有信息
    -(BOOL)deleteUser;
    
    
    @end
    
    FMDBManager.m
    
    #import "FMDBManager.h"
    #import "userModel.h"
    
    #define FMDB_NAME @"test.sqlite3"
    
    static FMDBManager *_sharedFMDB = nil;
    
    @implementation FMDBManager
    
    //共享实例
    +(FMDBManager *)sharedFMDB
    {
        
        if (_sharedFMDB == nil) {
            _sharedFMDB = [[FMDBManager alloc]init];
        }
        return _sharedFMDB;
    }
    
    -(id)init
    {
        self = [super init];
        if (self) {
            // Custom initialization
            [self openDataBase];
        }
        return self;
    }
    
    -(void)openDataBase
    {
        // NSDocumentDirectory (Documents目录下面) NSLibraryDirectory(Library目录下面)
        NSArray *libPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
        dataBasePath=[[libPaths objectAtIndex:0] stringByAppendingPathComponent:FMDB_NAME];
        
        // 创建数据库
        fmdbDataBase = [FMDatabase databaseWithPath:dataBasePath];
        if ([fmdbDataBase open]) {
            isFMDBopen = YES;
        } else {
            isFMDBopen = NO;
            NSLog(@"error when open db");
        }
        
    }
    
    // 判断是否存在表
    - (BOOL) isTableOK:(NSString *)tableName
    {
        FMResultSet *rs = [fmdbDataBase executeQuery:@"select count(*) as 'count' from sqlite_master where type ='table' and name = ?", tableName];
        while ([rs next])
        {
            // just print out what we've got in a number of formats.
            NSInteger count = [rs intForColumn:@"count"];
            
            if (0 == count)
            {
                NSLog(@"表不存在");
                return NO;
            }
            else
            {
                NSLog(@"表已存在");
                return YES;
            }
        }
        
        return NO;
    }
    
    // 创建表
    -(void)createTable
    {
        NSString *strCreatetable = [NSString stringWithFormat:@"CREATE TABLE 'user10086' ('userID' INTEGER PRIMARY KEY AUTOINCREMENT  NOT NULL, 'userName' text, 'passWord' text)"];
        
        if (![self isTableOK:[NSString stringWithFormat:@"%@",@"user10086"]])
        {
            BOOL res = [fmdbDataBase executeUpdate:strCreatetable];
            if (!res)
            {
                NSLog(@"error when creating db table");
            }
            else
            {
                NSLog(@"succ to creating db table");
            }
        }
        
    }
    
    // 插入数据
    -(void)insertTable
    {
    
        NSString *strInserttable = [NSString stringWithFormat:@"insert into user10086 (userName, passWord) values(?, ?) "];
        BOOL res = [fmdbDataBase executeUpdate:strInserttable,@"testUser",@"123456"];
      
        if (!res) {
            NSLog(@"insert error");
        } else {
            NSLog(@"insert success");
        }
    }
    
    // 获取所有记录
    -(NSMutableArray *)getList
    {
        NSMutableArray *chatList = [[NSMutableArray alloc] init];
        
        NSString *sqlQuery = [NSString stringWithFormat:@"select * from user10086"];
        FMResultSet * rs = [fmdbDataBase executeQuery:sqlQuery];
        while ([rs next]) {
            
            userModel *user = [[userModel alloc] init];
            
            user.userId = [NSString stringWithFormat:@"%d",[rs intForColumn:@"userID"]];
            user.userName = [rs stringForColumn:@"userName"];
            user.passWord = [rs stringForColumn:@"passWord"];
            
            [chatList addObject:user];
        }
        
        return chatList;
    }
    
    //删除某一条记录
    -(BOOL)deleteUser
    {
        NSString *sqlDelete = [NSString stringWithFormat:@"delete from user10086 where userID=%d", 1];
        
        return [fmdbDataBase executeUpdate:sqlDelete];
    }
    
    
    @end
    
    // 使用
      [[FMDBManager sharedFMDB]createTable];
      [[FMDBManager sharedFMDB]insertTable];
  • 相关阅读:
    Python random() 生成随机数
    【centos7】添加开机启动服务/脚本
    SSH远程会话管理工具
    resolv.conf 的超时(timeout)与重试(attempts)机制
    Linux系统中sysctl命令详解
    NMI watchdog: BUG: soft lockup
    nginx实现最简单的直播
    Linux下编译PHP常见错误及解决方法
    zbb20180919 db 数据库的水平分割和垂直分割
    zbb20180918 java servlet 重定向与请求转发的区别
  • 原文地址:https://www.cnblogs.com/joesen/p/3564951.html
Copyright © 2020-2023  润新知