ios 关于FMDB的基本使用

先简单介绍一下FMDB,FMDB是iOS平台的SQLite数据库框架,以OC的方式封装了SQLite的C语言API。使用起来很方便,省去了很多冗余的C语言代码,对比苹果自带的Core Data框架,更加轻量级和灵活,提供了多线程安全的数据库操作方法,有效地防止数据混乱。

-------------------------------------------------------------------------------------------------------------------

github地址

https://github.com/ccgus/fmdb

具体使用:

1.将FMDB导入到你的项目中去,然后添加libsqlite3.tbd(xcode7以后的版本).

2.

#import <Foundation/Foundation.h>

@interface DataBaseManager : NSObject

//写个单例
+(instancetype)sharedFMDataBase;
#import "DataBaseManager.h"
#import "FMDB.h"
@interface DataBaseManager()

@property (nonatomic,strong) FMDatabase * db;

@end

@implementation DataBaseManager

+(instancetype)sharedFMDataBase{
    static DataBaseManager*manager=nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        manager=[[DataBaseManager alloc]init];
    });
    return manager;
}
- (instancetype)init
{
    self = [super init];
    if (self) {
        NSString*doc=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];//得到数据库
        NSString*filename=[doc stringByAppendingPathComponent:@"students.sqlite"];
        //当数据库文件不存在时会自动创建一个数据库文件。

        //判断数据库是否存在
        if (!self.db) {
       //不存在创建
        self.db=[FMDatabase databaseWithPath:filename];
        }
        //为数据库设置缓存,提高查询效率
        [self.db setShouldCacheStatements:YES];
        BOOL open=[self.db open];//测试数据库是否打开成功
        if(open){
            NSLog(@"数据库打开成功");
        }else{
            NSLog(@"数据库打开失败");
        }
        //打开数据库
        if ([self.db open]) {
            if (![self.db tableExists:@"t_student"]) {

            //创建表
            BOOL result=[self.db executeUpdate:
                         @"CREATE TABLES t_student(id INTEGER PRIMARY KEY AUTOINCREAMENT, name TEXT, age TEXT)"];
            //将字典转成nsdata,而sql中保存是用的blob类型
            if (result) {
                NSLog(@"成功创表");
            }else{
                NSLog(@"创表失败");
            }
            }
            NSLog(@"已经有表了,不需要重新添加");
        }

        //关闭数据库
        [self.db close];

    }
    return self;
}

  对数据的基本操作:

//添加数据
[self.db open];
    [self.db executeUpdate:@"INSERT INTO t_student(name,age)values(?,?)",@"xiaoming",@"123"];
    [self.db close];

  

//查询数据
[self.db open];
    FMResultSet*resultSet=[self.db executeQuery:@"select * from t_student"];
    while ([resultSet next]) {
        int ID = [resultSet intForColumn:@"id"];
        NSString *name = [resultSet stringForColumn:@"name"];
        NSString* age = [resultSet stringForColumn:@"age"];
        NSLog(@"%d %@ %@", ID, name, age);
    }
    [self.db close];

  

  

时间: 2024-07-30 00:04:17

ios 关于FMDB的基本使用的相关文章

ios开发FMDB导入SQLCipher加密数据库

转:http://www.2cto.com/kf/201407/315727.html [iOS]FMDB/SQLCipher数据库加解密,迁移

iOS 使用FMDB进行数据库操作

[摘要]本文介绍iOS 使用FMDB进行数据库操作,并提供详细的示例代码供参考. 1.首先要先导入第三方类库FMdatabase. 2.获得存放数据库文件的沙盒地址. View Row Code 1 +(NSString *)databaseFilePath 2 { 3   4 NSArray *filePath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 5 NSStrin

IOS数据库FMDB增、删、改、查的使用【原创】

http://blog.it985.com/13588.html IOS数据库FMDB增.删.改.查的使用[原创] FMDB是一个XCODE的中一个轻量级的数据库,用于将网络资源存储在本地.所以,FMDB是一个很实用,很关键的知识点.在这里写了个简单的例子,基于FMDB的添删改查操作,代码可能比较乱,希望不要伤了各位的眼睛.其中添加删除更改的操作都非常简单,不需要做太多操作,只需要用到FMDB封装好的executeUpdate方法就行了. 第一步.加入sqlite3的包文件 如图所示,依次选择并

iOS中 FMDB第三方SQLite数据库 UI_20

1.什么是FMDB? FMDB是iOS平台下SQLite数据库,只不过它是OC方式封装了C语言的SQLite语句,使用起来更加面向对象 2.FMDB的优点:1.使用起来更加面向对象; 2.对比苹果自带的 Core Data 数据管理工具更加的轻量级,更加的灵活,而且FMDB支持跨平台; 3.提供多线程下的数据安全保护机制,有效地防止数据混乱 3.FMDM中重要的类: FMDBDataBase: 它代表一个数据库对象,(我们需要创建数据库对象时就使用这个类) FMDBDataBaseQueue:

iOS中FMDB的使用

需要用到离线缓存将数据信息存入数据库,在没有网络的时候进行加载,而iOS用的就是sqlite3数据库,用原生的sql我们也能实现,但是书写起来比较麻烦,尤其是其它语言转过来的程序员会感觉吃力,我们一般使用第三方FMDB 2 FMDB的下载地址 https://github.com/ccgus/fmdb 3在FMDB下载文件后,工程中必须导入如下文件,并使用 libsqlite3.dylib 依赖包 4 FMDB常用类 FMDatabase : 一个单一的SQLite数据库,用于执行SQL语句.

iOS 使用FMDB SQLCipher给数据库加密

关于SQLite,SQLCipher和FMDB SQLite是一个轻量的.跨平台的.开源的数据库引擎,它的在读写效率.消耗总量.延迟时间和整体简单性上具有的优越性,使其成为移动平台数据库的最佳解决方案(如iOS.Android).然而免费版的SQLite有一个致命缺点:不支持加密.这就导致存储在SQLite中的数据可以被任何人用任何文本编辑器查看到. 如果我们想要使得自己的数据库加密,解决方案就是使用另一款开源的加密数据库SQLCipher,SQLCipher使用256-bit AES加密,由于

JRDB:iOS对FMDB的超好用封装

在自己开发中,每次用到数据库都会纠结是使用CoreData还是FMDB.CoreData虽然Api简单,但是调用栈非常复杂,要初始化一个Context需要至少20行代码... 显然,对于这种这么恶心的情况,我们的大Github必须有人会跳出来解决这种问题.于是就出现了MagicRecord这个对CoreData的封装库.一开始遇到这个库的时候,好用到几乎让我想把所有项目的数据库都换成CoreData了.两句话解决CoreData调用栈的初始化,一句话完成数据库版本升级和自动数据合并更新(虽然我们

Ios第三方FMDB使用说明

SQLite (http://www.sqlite.org/docs.html) 是一个轻量级的关系数据库.iOS SDK很早就支持了SQLite,在使用时,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可.但是,原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,开源社区中就出现了一系列将SQLite API进行封装的库,而FMDB (https://github.com/ccgus/fmdb) 则是开源社区中的优秀者. FMDB在

IOS使用FMDB封装的数据库增删改查操作

// //  DBHelper.h //  LessonStoryBoard // //  Created by 袁冬冬 on 15/10/29. //  Copyright (c) 2015年 袁冬冬. All rights reserved. // #import <Foundation/Foundation.h> #import "FMDB.h" @interface DBHelper : NSObject @property (nonatomic, strong)