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

介绍
在整个周期,核心数据是最重要的部分,在开发初期数据库往往很容易被忽略,我们所聊的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循环 同时 进行检索和 提取 我们 一个 数据点 最后,我们 打印出 每个用户

你可能感兴趣的:(编程,数据库,sqlite,user,database,iPhone)