日期:2014-05-16  浏览次数:20407 次

iphone上的数据存储,sqlite3---第三方框架FMDB

在iPhone上是采用sqlite进行数据存储是我一种比较习惯性的做法。一般在其他平台也比较习惯用sqlite,比如android。

而iphone上有一些封装好的第三方框架提供使用,更节省了许多时间。如:Sqlitepersistentobjects ,FMDB 。今天查找了这个两个框架,感觉FMDB的风格更符合我的使用,其实两者是各有优点的,只是看个人喜好而已。

以下是FMDB的一些基本使用,FMDB框架其实只是一层很薄的封装,主要的类也就两个:FMDatabase和FMResultSet

其中的FMResultSet对象让我想起了android中sqlite的cursor集合啊。

FMDB的github地址是,https://github.com/ccgus/fmdb。

1、首先得实例化一个FMDatabase对象,这跟 Sqlitepersistentobjects 派生一个子类进行操作是不同。接着打开一个数据库(如果没有会创建一个数据库)


view plaincopy to clipboardprint?
  1. //paths:?ios下Document路径,Document为ios中可读写的文件夹 ??
  2. NSArray?*paths?=?NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,?NSUserDomainMask,?YES);??
  3. NSString?*documentDirectory?=?[paths?objectAtIndex:0];??
  4. //dbPath:?数据库路径,在Document中。 ??
  5. NSString?*dbPath?=?[documentDirectory?stringByAppendingPathComponent:@"Test.db"];??
  6. //创建数据库实例?db??这里说明下:如果路径中不存在"Test.db"的文件,sqlite会自动创建"Test.db" ??
  7. FMDatabase?*db=?[FMDatabase?databaseWithPath:dbPath]?;??
  8. if?(![db?open])?{??
  9. NSLog(@"Could?not?open?db.");??
  10. return?;??
  11. }??

?

?

接下来,我们可以通过这个数据库对象进行操作了。操作主要是update和queries。

首先是创建表。


view plaincopy to clipboardprint?