FMDB使用

时间:2023-03-08 20:59:06
FMDBManager.h

#import <Foundation/Foundation.h>
#import "FMDatabase.h" @interface FMDBManager : NSObject
{
NSString *dataBasePath;
FMDatabase * fmdbDataBase;//数据库对象
BOOL isFMDBopen;
} + (FMDBManager *)sharedFMDB; // 创建表
-(void)createTable; // 插入记录
-(void)insertTable; // 获取所有记录
-(NSMutableArray *)getList; //删除某人所有信息
-(BOOL)deleteUser; @end FMDBManager.m #import "FMDBManager.h"
#import "userModel.h" #define FMDB_NAME @"test.sqlite3" static FMDBManager *_sharedFMDB = nil; @implementation FMDBManager //共享实例
+(FMDBManager *)sharedFMDB
{ if (_sharedFMDB == nil) {
_sharedFMDB = [[FMDBManager alloc]init];
}
return _sharedFMDB;
} -(id)init
{
self = [super init];
if (self) {
// Custom initialization
[self openDataBase];
}
return self;
} -(void)openDataBase
{
// NSDocumentDirectory (Documents目录下面) NSLibraryDirectory(Library目录下面)
NSArray *libPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
dataBasePath=[[libPaths objectAtIndex:] stringByAppendingPathComponent:FMDB_NAME]; // 创建数据库
fmdbDataBase = [FMDatabase databaseWithPath:dataBasePath];
if ([fmdbDataBase open]) {
isFMDBopen = YES;
} else {
isFMDBopen = NO;
NSLog(@"error when open db");
} } // 判断是否存在表
- (BOOL) isTableOK:(NSString *)tableName
{
FMResultSet *rs = [fmdbDataBase executeQuery:@"select count(*) as 'count' from sqlite_master where type ='table' and name = ?", tableName];
while ([rs next])
{
// just print out what we've got in a number of formats.
NSInteger count = [rs intForColumn:@"count"]; if ( == count)
{
NSLog(@"表不存在");
return NO;
}
else
{
NSLog(@"表已存在");
return YES;
}
} return NO;
} // 创建表
-(void)createTable
{
NSString *strCreatetable = [NSString stringWithFormat:@"CREATE TABLE 'user10086' ('userID' INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, 'userName' text, 'passWord' text)"]; if (![self isTableOK:[NSString stringWithFormat:@"%@",@"user10086"]])
{
BOOL res = [fmdbDataBase executeUpdate:strCreatetable];
if (!res)
{
NSLog(@"error when creating db table");
}
else
{
NSLog(@"succ to creating db table");
}
} } // 插入数据
-(void)insertTable
{ NSString *strInserttable = [NSString stringWithFormat:@"insert into user10086 (userName, passWord) values(?, ?) "];
BOOL res = [fmdbDataBase executeUpdate:strInserttable,@"testUser",@""]; if (!res) {
NSLog(@"insert error");
} else {
NSLog(@"insert success");
}
} // 获取所有记录
-(NSMutableArray *)getList
{
NSMutableArray *chatList = [[NSMutableArray alloc] init]; NSString *sqlQuery = [NSString stringWithFormat:@"select * from user10086"];
FMResultSet * rs = [fmdbDataBase executeQuery:sqlQuery];
while ([rs next]) { userModel *user = [[userModel alloc] init]; user.userId = [NSString stringWithFormat:@"%d",[rs intForColumn:@"userID"]];
user.userName = [rs stringForColumn:@"userName"];
user.passWord = [rs stringForColumn:@"passWord"]; [chatList addObject:user];
} return chatList;
} //删除某一条记录
-(BOOL)deleteUser
{
NSString *sqlDelete = [NSString stringWithFormat:@"delete from user10086 where userID=%d", ]; return [fmdbDataBase executeUpdate:sqlDelete];
} @end // 使用
[[FMDBManager sharedFMDB]createTable];
[[FMDBManager sharedFMDB]insertTable];