iOS数据库操作fmdb1: FMDB数据库使用

FMDatabase 数据库

1.下载FMDatabase

导入下载里面的src文件,删了fmdb.m文件

2.引入framework:libsqlite3.dylib

3.引入头文件

#import "FMDatabase.h”

数据库文件要兼容iPhone4和iPhone5需要放在Document或Library目录中,先判断Document/Library中数据库文件(一般是.sqlite后缀)是否存在,如果不存在则从工程(bundle)中把数据库文件拷贝到Document中或Library中。

以下是我是我工程中用过的一个数据库操作代码,记下来,免得忘记了:

[cpp] view
plain
copyprint?

  1. //数据库操作,1代表增减,2代表删除,3,代表查询,4,代表修改
  2. -(void)operateDB:(NSInteger)num andRow:(NSInteger)row status:(NSInteger)status{
  3. self.deleteOld = YES;
  4. self.dbFile = @"shopCar_db.sqlite";
  5. NSFileManager *manager = [NSFileManager defaultManager];
  6. NSString *dbPath = [Utilities documentsPath:self.dbFile];
  7. //没存在则拷贝到document
  8. if (![manager fileExistsAtPath:dbPath]) {
  9. NSString *bundlePath = [Utilities bundlePath:self.dbFile];
  10. if ([manager copyItemAtPath:bundlePath toPath:dbPath error:nil]) {
  11. NSLog(@"copy ok...");
  12. }
  13. else
  14. {
  15. NSLog(@"copy error...");
  16. }
  17. }
  18. else{
  19. if (self.deleteOld) {
  20. NSLog(@"delete old and create new..");
  21. NSString *bundlePath = [Utilities bundlePath:self.dbFile];
  22. [manager removeItemAtPath:dbPath error:nil];
  23. [manager copyItemAtPath:bundlePath toPath:dbPath error:nil];
  24. }
  25. else
  26. {
  27. NSLog(@"do nothing...");
  28. }
  29. }
  30. FMDatabase *db = [FMDatabase databaseWithPath:dbPath];
  31. NSLog(@"begin to db...");
  32. if ([db open]) {
  33. if(status == 1){
  34. NSLog(@"增减.......");
  35. }
  36. if(status == 2){
  37. NSString *sql = [NSString stringWithFormat:@"delete from shopCar_tb where id = %i",row];
  38. [db executeUpdate:sql];
  39. }
  40. if(status == 3){
  41. NSLog(@"查询........");
  42. }
  43. if(status == 4){
  44. NSString *sql = [NSString stringWithFormat:@"UPDATE shopCar_tb SET num = ‘%d‘ WHERE id = %d",num,row];
  45. [db executeUpdate:sql];
  46. }
  47. NSString *sql = @"select * from shopCar_tb";
  48. FMResultSet *result = [db executeQuery:sql];
  49. _mutableArrayData = [[NSMutableArray alloc] init];
  50. [_mutableArrayData removeAllObjects];
  51. [_mutableDictionayData removeAllObjects];
  52. while ([result next]) {
  53. _mutableDictionayData = [[NSMutableDictionary alloc] init];
  54. NSString *sid = [result stringForColumn:@"id"];
  55. [_mutableDictionayData setObject:sid forKey:@"id"];
  56. NSString *name = [result stringForColumn:@"name"];
  57. [_mutableDictionayData setObject:name forKey:@"name"];
  58. NSString *gid = [result stringForColumn:@"gid"];
  59. [_mutableDictionayData setObject:gid forKey:@"gid"];
  60. NSString *num = [result stringForColumn:@"num"];
  61. [_mutableDictionayData setObject:num forKey:@"num"];
  62. NSLog(@"num = %i",[num intValue]);
  63. NSString *price = [result stringForColumn:@"price"];
  64. [_mutableDictionayData setObject:price forKey:@"price"];
  65. NSString *path = [result stringForColumn:@"path"];
  66. [_mutableDictionayData setObject:path forKey:@"path"];
  67. [_mutableArrayData addObject:_mutableDictionayData];
  68. }
  69. }
  70. [db close];
  71. NSLog(@"end db...");
  72. }
时间: 2024-08-03 20:35:24

iOS数据库操作fmdb1: FMDB数据库使用的相关文章

iOS数据库操作(使用FMDB)

iOS学习笔记(十六)——数据库操作(使用FMDB) 分类: iOS开发 2013-07-15 23:19 8655人阅读 评论(5) 收藏 举报 目录(?)[+] iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepersistentobjects等,FMDB (https://github.com/ccgus/fmdb) 是一款简洁.易用的封装库,这一

iOS 数据库操作(使用FMDB)

iOS 数据库操作(使用FMDB) iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepersistentobjects等,FMDB (https://github.com/ccgus/fmdb) 是一款简洁.易用的封装库,这一篇文章简单介绍下FMDB的使用. 在FMDB下载文件后,工程中必须导入如下文件,并使用 libsqlite3.dylib 依赖包.

iOS数据库操作之FMDB框架的使用

原文链接:http://blog.csdn.net/xyz_lmn/article/details/9312837 iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepersistentobjects等,FMDB (https://github.com/ccgus/fmdb) 是一款简洁.易用的封装库,这一篇文章简单介绍下FMDB的使用. 在FMDB下载文

iOS学习笔记(十六)——数据库操作(使用FMDB)

iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepersistentobjects等,FMDB (https://github.com/ccgus/fmdb) 是一款简洁.易用的封装库,这一篇文章简单介绍下FMDB的使用. 在FMDB下载文件后,工程中必须导入如下文件,并使用 libsqlite3.dylib 依赖包. FMDB同时兼容ARC和非ARC工

数据库操作(使用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数据库

前言: 最近几天一直在折腾数据库存储,之前文章(http://www.cnblogs.com/whoislcj/p/5485959.html)介绍了Sqlite 数据库,SQLite是一种小型的轻量级的关系型数据库,不过直接用ios sdk提供的API来进行数据库开发,多多少少感觉不那么得心应手.后来也学了更加面向对象的CoreData数据库,不过coreData感觉对数据库的支持不太那么好,虽然操作方便,但是损失了性能以及效率,对于数据量比较大的app来说就有点不太合适了,如果有兴趣的可以看下

十三、EnterpriseFrameWork框架核心类库之数据库操作(多数据库事务处理)

本章介绍框架中封装的数据库操作的一些功能,在实现的过程中费了不少心思,针对不同数据库的操作(SQLServer.Oracle.DB2)这方面还是比较简单的,用工厂模式就能很好解决,反而是在多数据库同时操作方面走了不少弯路:现在从以下几个方面进行说明: 一.不同数据库操作 此处用到了工厂模式来实现不同数据库操作,看下图 AbstractDatabase是一个抽象类,定义了所有对数据库的操作抽象方法,包括执行一个SQL语句.执行存储过程.事务操作等 [Serializable] public abs

#iOS开发常用方法集锦#FMDB数据库操作

本文永久地址为?http://www.cnblogs.com/ChenYilong/p/4107506.html,转载请注明出处. Evernote印象笔记:https://app.yinxiang.com/l/ABZhZU-_1SBPIoLhgZ7-WrMwJYAhD89Swn0//增删改查操作 //#import "CYLFMDatabaseTool.h" ? //插入操作 -(void)insertPhoneNumberHistoryWithFMDB:(NSArray?*)pho

数据库操作(SQLite)

SQLite 是一个轻量级的关系数据库.SQLite最初的设计目标是用于嵌入式系统,它占用资源非常少,在嵌入式设备中,只需要几百K的内存就够了,目前应用于Android.iOS.Windows Phone等智能手机.iOS 使用时SQLite,只需要加入 libsqlite3.dylib 依赖以及引入 sqlite3.h 头文件即可. 数据库操作包含打开数据库.创建表,表的增.删.改.查.下面代码给出了数据库操作. 创建并打开数据库: //获取数据库路径 NSArray *paths = NSS