FMDB的使用方法

1.FMDB是iOS中存储比较大的数据方法,是sqlite的封装类,很好用

2.可以去Githud上面下面FMDB的封装类

3.FMDB 的使用一些步骤:

<1>将下载好的文件导入到项目工程中,然后添加sqlite3.0的库

<2>新建一个Mydbhepler 类,用于数据的操作:(使用单例模式)

<3>在Mydbhepler.h的文件:

#import <Foundation/Foundation.h>

#import "Message.h"

#import "SocketValue.h"

#import "Goods.h"

#import "Contact.h"

@interface MyDBHelper : NSObject

    +(MyDBHelper *) getInstance;

  -(void) createDatabaseAndTable ;

    -(void) addMessage : (Message *) msg;

    -(NSMutableArray *) getAllMessages;

    -(void) deleteAllMesssages;

   -(void) addSocketValue :(SocketValue *) sv;

    -(NSMutableArray *)getAllSocketValues;

    -(void) updateSocketValue:(int) identify : (int) serverID;

    -(void) deleteAllSocketValue;

    -(void) deleteSocketValueById:(int) identify;

    -(NSMutableArray *) getAllCustomStatus;

     -(void) addCustomStatus:(NSString *)address;

-(void) deleteCustomStatus:(NSString *) identify;

-(void) deleteAllStatuses;

<4>在Mydbhelper.m 的文件的实现

#import "MyDBHelper.h"

#import "FMDatabase.h"

#import "StatusItem.h"

#import "SocketValue.h"

#import "Contact.h"

@implementation MyDBHelper

static MyDBHelper *helper = nil;

+(MyDBHelper *) getInstance{

@synchronized(self)

{

if (helper == nil)

{     helper = [[self alloc] init];

}

}

return helper;

}

//创建数据库

-(void) createDatabaseAndTable{

NSString *home = NSHomeDirectory();

NSString *dbPath = [NSString stringWithFormat:@"%@/Documents/ise.db", home];

NSLog(@"dbPath:%@" ,dbPath);

FMDatabase *db = [FMDatabase databaseWithPath:dbPath];

if(![db open]){

NSLog(@"could not open");

}

[db executeUpdate:@"create table if not exists message (id integer primary key autoincrement , address text, datestr text , event integer , url text , textmsg text , direction integer)"];

[db executeUpdate:@"create table if not exists status ( id integer primary key autoincrement , address text)"];

[db executeUpdate:@"create table if not exists socket ( id integer primary key autoincrement , socketid text , socketvalue text , type text , socketdate text, max2min text, serverID integer )"];

[db executeUpdate:@"create table if not exists cart (id integer primary key autoincrement , goodsid text,count integer)"];

[db executeUpdate:@"create table if not exists contact (id integer primary key autoincrement , name text ,cellphone text,address text ,zipcode text)"];

[db close];

}

-(void) deleteAllSocketValue{

NSString *home = NSHomeDirectory();

NSString *dbPath = [NSString stringWithFormat:@"%@/Documents/ise.db", home];

FMDatabase *db = [FMDatabase databaseWithPath:dbPath];

if(![db open]){

NSLog(@"could not open");

}

[db executeUpdate:@"delete from socket"];

[db close];

}

-(void) deleteSocketValueById:(int)identify{

NSString *home = NSHomeDirectory();

NSString *dbPath = [NSString stringWithFormat:@"%@/Documents/ise.db", home];

FMDatabase *db = [FMDatabase databaseWithPath:dbPath];

if(![db open]){

NSLog(@"could not open");

}

NSString *sql = [NSString stringWithFormat:@"delete from socket where id = %d" , identify];

NSLog(@"sql = %@" ,sql);

[db executeUpdate:sql];

[db close];

}

-(void) addSocketValue :(SocketValue *) sv{

NSString *home = NSHomeDirectory();

NSString *dbPath = [NSString stringWithFormat:@"%@/Documents/ise.db", home];

FMDatabase *db = [FMDatabase databaseWithPath:dbPath];

if(![db open]){

NSLog(@"could not open");

}

NSString *sql = [NSString stringWithFormat:@"insert into socket values(null , \‘%@\‘  , \‘%@\‘ , \‘%@\‘, \‘%@\‘ , \‘%@\‘ , %d )" , sv.socketid , sv.socketvalue , sv.type , sv.socketdate , sv.max2min , sv.serverID ];

NSLog(@"insert sql = %@", sql);

[db executeUpdate:sql];

[db close];

}

-(NSMutableArray *)getAllSocketValues{

NSString *home = NSHomeDirectory();

NSString *dbPath = [NSString stringWithFormat:@"%@/Documents/ise.db", home];

FMDatabase *db = [FMDatabase databaseWithPath:dbPath];

if(![db open]){

NSLog(@"could not open");

}

NSMutableArray *array =  [[NSMutableArray alloc] init];

FMResultSet *rs=  [db executeQuery:@"select * from socket"];

while ([rs next]){

   SocketValue *sv = [[SocketValue alloc]init];

  sv.identify = [rs intForColumn:@"id"];

   sv.socketid = [rs stringForColumn:@"socketid"];

   sv.socketvalue = [rs stringForColumn:@"socketvalue"];

sv.type = [rs stringForColumn:@"type"];

sv.socketdate = [rs stringForColumn:@"socketdate"];

sv.max2min = [rs stringForColumn:@"max2min"];

sv.serverID = [rs intForColumn:@"serverID"];

[array addObject: sv];

}

[rs close];

return array;

}

时间: 2024-10-24 07:49:29

FMDB的使用方法的相关文章

FMDB浅析

一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQLite的API进行了封装,加上了面向对象的思想,让我们不必使用繁琐的C语言API函数,比起直接操作SQLite更加方便. FMDB优点: 使用起来更加面向对象,省去了很多麻烦.冗余的C语言代码 对比苹果自带的CoreData框架,更加轻量级和灵活 提供多线程安全,有效地防止数据混乱,原来的SQLite不是线程安全的 FMDB缺点: 因为是OC语言封装的,失去了SQLite原来的跨平台性 我们要使用FMDB需要的步骤: 项目中添加

iOS开发之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 使用方法

优秀的第三方库,README 也是很优秀的,理解了 README,会对使用带来很多便利. ARC 和 MRC 项目中使用 ARC 还是 MRC,对使用 FMDB 都没有任何影响,FMDB 会在编译项目时自动匹配. 使用 在 FMDB 中有三个重要的类: FMDatabase:是一个提供 SQLite 数据库的类,用于执行 SQL 语句. FMResultSet:用在 FMDatabase 中执行查询的结果的类. FMDatabaseQueue:在多线程下查询和更新数据库用到的类. 数据库创建 F

FMDB 使用方法简介

ARC 和 MRC FMDB作为一个优秀的通用第三方数据库框架,无论在ARC还是MRC下,都可以自动匹配. 使用 在FMDB中,有三个重要的类: FMDatabase:是一个提供SQLite数据库的类,每一个SQLite的对象对应一个数据库,用于执行SQL语句. FMResultSet:在FMDatabase中用于执行查询结果的类 FMDatabaseQueue:在多线程下查询和更新数据库用到的类 数据库的创建和使用 数据库的文件路径可以是一下三者之一: 一个文件的系统路径,磁盘中可以不存在此文

iOS中 FMDB第三方SQLite数据库 UI_20

1.什么是FMDB? FMDB是iOS平台下SQLite数据库,只不过它是OC方式封装了C语言的SQLite语句,使用起来更加面向对象 2.FMDB的优点:1.使用起来更加面向对象; 2.对比苹果自带的 Core Data 数据管理工具更加的轻量级,更加的灵活,而且FMDB支持跨平台; 3.提供多线程下的数据安全保护机制,有效地防止数据混乱 3.FMDM中重要的类: FMDBDataBase: 它代表一个数据库对象,(我们需要创建数据库对象时就使用这个类) FMDBDataBaseQueue:

优化iOS程序性能的25个方法

1. 用ARC管理内存 ARC(Automatic ReferenceCounting, 自动引用计数)和iOS5一起发布,它避免了最常见的也就是经常是由于我们忘记释放内存所造成的内存泄露.它自动为你管理retain和release的过程,所以你就不必去手动干预了.忘掉代码段结尾的release简直像记得吃饭一样简单.而ARC会自动在底层为你做这些工作.除了帮你避免内存泄露,ARC还可以帮你提高性能,它能保证释放掉不再需要的对象的内存. 现在所有的iOS程序都用ARC了,这条可以忽略. 2. 在

FMDB

FMDB 对 sqlite进行了封装,这样数据库的相关操作就变得灰常的简单.. 首先去这里下载FMDB:https://github.com/ccgus/fmdb 把FMDB的相关文件添加到工程 在工程中假如framwwork:libsqlite3.dylib 然后在.h中引入: [cpp] view plain copy #import "FMDatabase.h" 首先,你要使用一个数据库文件的路径来构造一个FMDB对象: [cpp] view plain copy FMDatab

本地数据持久化方法

http://www.jianshu.com/p/86ea6da905cf http://www.cocoachina.com/industry/20130328/5908.html 1. 属性列表(plist)NSUserDefaults 属性列表是一种明文的轻量级存储方式,其存储格式有多种,最常规格式为XML格式.在我们创建一个新的项目的时候,Xcode会自动生成一个info.plist文件用来存储项目的部分系统设置.plist只能用数组(NSArray)或者字典(NSDictionary)

iOS中FMDB的使用

需要用到离线缓存将数据信息存入数据库,在没有网络的时候进行加载,而iOS用的就是sqlite3数据库,用原生的sql我们也能实现,但是书写起来比较麻烦,尤其是其它语言转过来的程序员会感觉吃力,我们一般使用第三方FMDB 2 FMDB的下载地址 https://github.com/ccgus/fmdb 3在FMDB下载文件后,工程中必须导入如下文件,并使用 libsqlite3.dylib 依赖包 4 FMDB常用类 FMDatabase : 一个单一的SQLite数据库,用于执行SQL语句.