IOS中FMDB的使用

ios开发时会经常用到数据库来存储一些数据,而系统自带的sqlite3较为繁琐,FMDB是对其的进一步封装,用起来很方便简洁。下边就是我要向大家介绍的FMDB的使用方法:

1.将FMDB的几个类导入工程(下边图片里面的这些类大家可以去网上下载)


2.导入libsqlite3.dylib框架


上边这两步就是是用FMDB的前期准备,下边我就带大家来学习工程中代码的实现:

1.首先在你想要实现数据库的代码的类中导入

#import "FMDatabase.h"

#import "FMDatabaseAdditions.h"

2.如果你有建好的数据库,那么将已有的数据库导入工程,在AppDelegate.m中将数据库拷贝到沙盒,拷贝之后,你每次对数据库的操作就是对沙盒文件中得数据库进行的操作

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

   //拷贝文件到沙盒文件

    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES)lastObject];

    NSString *file = [pathstringByAppendingPathComponent:已有的数据库名字];

   //若沙盒文件没有这个数据库则拷贝

    if ([[NSFileManagerdefaultManager] fileExistsAtPath:file] ==FALSE)

    {

        //从工程中取出刚刚导入的数据库

       NSString *fromFile = [[NSBundlemainBundle] pathForResource:已有的数据库名字ofType:nil];

        [[NSFileManagerdefaultManager] copyItemAtPath:fromFiletoPath:file error:nil];

    }else{

       NSLog(@"文件存在");

    }

}

3.如果没有数据库则新建一个数据库

NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

NSString *database_path = [path stringByAppendingPathComponent:数据库的名字];

_db = [FMDatabase databaseWithPath:database_path];//从注意此时沙盒文件中若没有这个数据库则会新建一个

打开数据库

[_db open];

3.1创建表

if ([_db open]) {

NSString *createTable =  [NSString stringWithFormat:@"CREATE TABLE IF NOT EXISTS '%@' ('%@' INTEGER PRIMARY KEY AUTOINCREMENT, '%@' TEXT, '%@' INTEGER, '%@' TEXT)",创建的表名,字段名1,字段名2,字段名3,字段名4];

        BOOL res = [db executeUpdate:createTable];

        if (!res) {

            NSLog(@"创建表失败");

        } else {

            NSLog(@"创建表成功");

        }

        [_db close]; 

}


3.1插入数据

if ([_db open]) {

BOOL res = [_db executeUpdate:@"INSERT INTO createTable (字段名1,字段名2,字段名3,字段名4) VALUES(?,?,?,?)",字段名1值,字段名2值,字段名3值,字段名4值,nil];

    if (!res) {

        NSLog(@"数据插入失败");

    }else{

       NSLog(@"数据插入成功");

    }

    [_db close];

}
注意当你插入的数据为int或float时,你要将他转换为NSNumber类型

3.2删除数据
if  ([ _db   open ]) {

BOOL re = [_db executeUpdate:@"delete from createTable where  字段名(一般为主键id,根据自己的需要定义)= ?", 字段值];

    if (re) {

       NSLog(@"delete yes");

    }else{

       NSLog(@"delete no");

    }

    [_db close];

}

3.3更新数据

if ([_db open]) {

BOOL re = [[Singleton sharedSingleton].db executeUpdate:@"UPDATE createTable SET 字段名1(一般为主键id,根据自己的需要定义) = ? 字段名2(一般为要更新的字段) = ? ;",字段名1值,字段名2值];

    if (re) {

        NSLog(@"update yes");

    }else{

        NSLog(@"update no");

    }

   [_db close];

}


3.4查找数据

if ([_db open]) {

FMResultSet *rs = [_db executeQuery:@"SELECT * FROM createTable"];

    while ([rs next]) {

        NSInteger Id = [rs intForColumn:@"字段名1"];

        NSString *name = [rs stringForColumn:@"字段名2"];

    }

    [_db close];

}


以上就是对数据库进行增删改查的操作,注意使用数据库时必须要将数据库打开,使用完毕后将数据库关闭,大家用的时候只需要替换褐色字体的部分即可






  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值