以下模型类
在LLUser.h中
#import <Foundation/Foundation.h>
@interface LLUser : NSObject
@property (nonatomic ,strong) NSString *userName;
@property (nonatomic ,strong) NSString *userAge;
@property (nonatomic ,strong) NSString *ids;
@end
在LLUser.m文件中
#import "LLUser.h"
@implementation LLUser
- (void)dealloc
{
self.userAge = nil;
self.userName = nil;
}
@end
以下是数据接口管理类
在LLDataManager.h的类中
#import <Foundation/Foundation.h>
#import "FMDatabase.h"
@class LLUser;
@interface LLDataManager : NSObject
@property (nonatomic ,strong) FMDatabase *fmdb;
+ (LLDataManager *)defaultDataBase;
- (void)insertUser:(LLUser *)user;
- (NSMutableArray *)selectData;
- (void)deleteData:(LLUser *)item;
- (void)updateData:(LLUser *)item;
@end
在LLDataManager.m的类中
#import "LLDataManager.h"
#import "FMDatabase.h"
#import "LLUser.h"
static LLDataManager *dataManager = nil;
@implementation LLDataManager
+ (LLDataManager *)defaultDataBase
{
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
dataManager = [[LLDataManager alloc] init];
});
return dataManager;
}
- (id)init
{
if (self == [super init])
{
[self createData];
}
return self;
}
//创建表
- (void)createData
{
NSString *path = [LLDataManager pathWithFilePath:@"myCommunity.db"];
self.fmdb = [FMDatabase databaseWithPath:path];
if ([self.fmdb open])
{
[self createTable];
}
}
- (void)createTable
{
NSString *sql = @"CREATE TABLE IF NOT EXISTS user (id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,name TEXT(1024),age TEXT(1024))";
if ([self.fmdb executeUpdate:sql])
{
NSLog(@"seccuss");
}
else
{
NSLog(@"fail");
}
}
//验证数据是否存在
- (BOOL)isExistUser:(LLUser *)user
{
NSLog(@"%@",user.userName);
NSString *sql = [NSString stringWithFormat:@"SELECT name FROM user WHERE name = ?"];
FMResultSet *result = [self.fmdb executeQuery:sql,user.userName];
while ([result next])
{
return YES;
}
return NO;
}
//增加
- (void)insertUser:(LLUser *)user
{
if ([self isExistUser:user])
{
NSLog(@"记录已经存在");
return;
}
NSString *sql = [NSString stringWithFormat:@"INSERT INTO user(name,age) VALUES(?,?)"];
if ([self.fmdb executeUpdate:sql,user.userName,user.userAge])
{
NSLog(@"insert Success");
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"insert User" message:@"success" delegate:self cancelButtonTitle:@"ok" otherButtonTitles:nil, nil];
[alert show];
}
}
//删除
- (void)deleteData:(LLUser *)item
{
NSString *sql = [NSString stringWithFormat:@"DELETE FROM user WHERE id = ?"];
if ([self.fmdb executeUpdate:sql,item.ids])
{
NSLog(@"delete success");
}
}
//修改
- (void)updateData:(LLUser *)item
{
NSString *sql = [NSString stringWithFormat:@"UPDATE user SET name = ?,age = ? WHERE id = ?"];
[self.fmdb executeUpdate:sql,item.userName,item.userAge,item.ids];
}
+ (NSString *)pathWithFilePath:(NSString *)dataBaseName
{
NSString *path = NSHomeDirectory();
if (dataBaseName.length > 0)
{
path = [path stringByAppendingFormat:@"/tmp/%@",dataBaseName];
}
return path;
}
//查询获取数据
- (NSMutableArray *)selectData
{
NSMutableArray *array = [NSMutableArray arrayWithCapacity:0];
NSString *sql = [NSString stringWithFormat:@"SELECT id,name,age FROM user"];
FMResultSet *result = [self.fmdb executeQuery:sql];
while ([result next])
{
LLUser *item = [[LLUser alloc] init];
item.ids = [result stringForColumn:@"id"];
item.userName = [result stringForColumn:@"name"];
item.userAge = [result stringForColumn:@"age"];
[array addObject:item];
}
return array;
}
@end
注意使用的时候,记得导入依赖框架libsqlite3.dylib,在接口类中导入FMDatabase.h文件