原创申精-Iphone 编程 用FMDB完成简单的SQlite数据库交互

本文详细介绍了如何使用FMDB库简化与SQLite数据库的交互过程,包括创建数据库、表,以及执行插入、提取和删除操作。通过实例演示了在AppDelegate中创建数据库和表的方法,以及如何使用FMDB进行数据管理和查询。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

介绍
在整个周期,核心数据是最重要的部分,在开发初期数据库往往很容易被忽略,我们所聊的SQlite,大概很多人都了解SQlite是核心数据库, 是IOS设备上的首选关系数据储存方式。

雖然,大部分開發商不與 SQLite的直接互動,他們仍然倾向Hood引擎,作為核心數據的主要數據存儲。這是可取的,但有很多時候,原始SQLite的仍然是首選的存儲方法。

其中的几个可能包括:

高速缓存
首选项
简单对象
可移植性
跨平台应用程序
最近,我不得不作出停止使用sqlite的缓存策略作为一个新的项目在我的工作中。因为我们正在开发其他开发框架,包括在自己的项目上,我们不能总是认为他们有他们的环境设置使用的核心数据。我曾疯狂的手动管理SQlite,但我还是一个n00b IOS开发者时。所以请不要花太多时间看这个帖子,因为说起来比较尴尬。

肯定会有人不解?现在,有一个更容易的方法来管理与SQLite数据库进行交互。这个库已经存在了很长一段时间,我想我知道应该略早些。
FMDB stands for Flying Meat Database.这是一个伟大的名字......该项目旨在对SQLite是一个功能齐全的包装
你可以克隆他们的资源在他们的网站上https://github.com/ccgus/fmdb
本教程将为您简要介绍使用FMDB创建一个数据库,创建表,插入,提取,和删除数据。
项目设置
第一步是下载FMDB从他们的官网上。一旦被下载到您的项目src文件夹拖动里面的一切,除了fmdb.m.该文件包含单元测试和一个主要的程序,这将导致在您的项目中可能产生一些冲突。
下一步是SQLite库链接。要做到这几点:

1,单击左侧列中的Xcode项目

2,点击在中间一列的主要目标。在我们的例子中,它的“FMDBTest”

3,点击在第三列中的“构建阶段”标签

4,旁边的箭头,展开“链接库的二进制”

5,点击“+”按钮

6,搜索libsqlite3.0.dylib并双击它


按照上面操作以后会如图所示:


现在我们已经有一个库了,让我们来键入一些代码
创建数据库
显然,这里你已经创建了你的数据库,但我们要应用在AppDelegate中
此外,在现有的数据库工作,FMDB可以轻松地创建任何数量上的数据库进入FMDatabase.h我们AppDelegate.m文件我们可以到应用程序中添加以下代码didFinishLaunching方法
  1. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
  2. NSString *docsPath = [paths objectAtIndex:0];
  3. NSString *path = [docsPath stringByAppendingPathComponent:@"database.sqlite"];

  4. FMDatabase *database = [FMDatabase databaseWithPath:path];
复制代码

首先,我们要解决文件目录路径要小心如果您不需要您的数据库进行备份,可以使缓存目录当你发送一个路径fmdb
databaseWithPath方法它首先检查数据库是否存在如果不是,它会创建同样,我们可以复制一个现有的数据库文件目录源代码采用相同的方式


打开数据库和创建表
为了执行数据库任何行动它必须首先被打开。下面是代码打开数据库创建一个用户不要担心现在关闭它我们会自动处理的,在我们需要时

  1. [database open];
  2. [database executeUpdate:@"create table user(name text primary key, age int)"];
复制代码
这里我们首先调用Open方法打开数据库接下来,我们使用executeUpdate方法来创建表确保在创建表时您使用此方法并没有executeQuery一个常见的错误我们更新的数据库看起来应该像这样


当我们到达这个步骤时我们关闭数据库。

插入和删除数据

插入数据使用SQLite非常简单你可以建立你的字符串直接或通过他们使用SQLite的格式“来fmdb工作下面是每一个例子

  1. // Building the string ourself
  2. NSString *query = [NSString stringWithFormat:@"insert into user values ('%@', %d)",
  3. @"brandontreb", 25];
  4. [database executeUpdate:query];

  5. // Let fmdb do the work
  6. [database executeUpdate:@"insert into user(name, age) values(?,?)",
  7. @"cruffenach",[NSNumber numberWithInt:25],nil];
复制代码
一般来说,第二条路线是首选,作为fmdb他为您一些消毒工作单引号​​中添加斜线

现在,我们已经在我们的数据库中添加了一些数据,让我们将其删除下面的代码会删除条件为一个25岁以下的所有用户
  1. [database executeUpdate:@"delete from user where age = 25"];
复制代码

查询数据库查询数据库会略微麻烦点,相对插入和删除
FMDB帮助我们在某些情况下,提供了一些很强大的实用方法,但对于本教程,我们将假定不存在的,并且告诉你如何获取数据


所以,我们其实有一些数据工作

以下从数据库中获取所有用户一个例子

  1. FMResultSet *results = [database executeQuery:@"select * from user"];
  2. while([results next]) {
  3.     NSString *name = [results stringForColumn:@"name"];
  4.     NSInteger age  = [results intForColumn:@"age"];        
  5.     NSLog(@"User: %@ - %d",name, age);
  6. }
  7. [database close];
复制代码

我们首先使用executeQuery方法查询数据库这将返回给我们FMResultsSet接下来,我们开始了一个while循环同时进行检索和提取我们一个数据点最后,我们打印出每个用户
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值