ios数据存储方式FMDB
来源:互联网 发布:splice软件安卓版 编辑:程序博客网 时间:2024/05/21 12:42
从网上下载FMDB的原码,将其拖入到项目中,然后在Link Binary With Libraries中添加libsqlite3.dylib,就可以用了
实现如下:
#import "ViewController.h"#import "FMDatabase.h"#import "FMDatabaseAdditions.h"#import "FMDatabaseQueue.h"@interface ViewController ()@end@implementation ViewController- (void)viewDidLoad{ [super viewDidLoad];// Do any additional setup after loading the view, typically from a nib.}- (void)didReceiveMemoryWarning{ [super didReceiveMemoryWarning]; // Dispose of any resources that can be recreated.}- (void)dealloc { [_nameText release]; [_ageText release]; [_sexText release]; [_showLabel release]; [super dealloc];}- (void)viewDidUnload { [self setNameText:nil]; [self setAgeText:nil]; [self setSexText:nil]; [self setShowLabel:nil]; [super viewDidUnload];}//保存- (IBAction)saveBtn:(id)sender { FMDatabase* database=[FMDatabase databaseWithPath:[self databasePath]]; if (![database open]) { NSLog(@"Open database failed"); return; } if (![database tableExists:@"user"]) { [database executeUpdate:@"create table user (id integer primary key autoincrement not null,name text,age integer,sex text)"]; } BOOL insert=[database executeUpdate:@"insert into user (name,age,sex) values (?,?,?)",_nameText.text,[NSNumber numberWithInteger:[_ageText.text integerValue]],_sexText.text]; //下面注释的也能实现数据的插入,只不过它是传入了字典// NSMutableDictionary* argsDict=[NSMutableDictionary dictionary];// [argsDict setObject:_nameText.text forKey:@"name"];// [argsDict setObject:_ageText.text forKey:@"age"];// [argsDict setObject:_sexText.text forKey:@"sex"];// BOOL insert=[database executeUpdate:@"insert into user (name,age,sex) values (:name,:age,:sex)" withParameterDictionary:argsDict]; if (insert) { UIAlertView* alert=[[UIAlertView alloc] initWithTitle:@"提示" message:@"保存成功" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定",nil]; [alert show]; [alert release]; }else{ NSLog(@"insert failed"); } [database close]; //下面注释的这一段也是创建表只不过它是多线程安全的,而上面的在多线程中是不安全的// FMDatabaseQueue* queue=[FMDatabaseQueue databaseQueueWithPath:[self databasePath]];// [queue inDatabase:^(FMDatabase* database){// if (![database tableExists:@"user"]) {// [database executeUpdate:@"create table user (id integer primary key autoincrement not null,name text,age integer,sex text)"];// }// BOOL insert=[database executeUpdate:@"insert into user (name,age,sex) values (?,?,?)",_nameText.text,[NSNumber numberWithInteger:[_ageText.text integerValue]],_sexText.text];// if (insert) {// UIAlertView* alert=[[UIAlertView alloc] initWithTitle:@"提示" message:@"保存成功" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定",nil];// [alert show];// [alert release];// }else{// NSLog(@"insert failed");// }//// }];// [queue close]; }//显示所有数据库中的数据- (IBAction)showBtn:(id)sender { FMDatabase* database=[FMDatabase databaseWithPath:[self databasePath]]; if (![database open]) { return; } //注意 此处的FMResultSet可以不用关闭,因为数据库关闭的时候FMResultSet自动关闭 FMResultSet* resultSet=[database executeQuery:@"select* from user"]; NSString* str=@""; while ([resultSet next]) { NSString* name=[resultSet stringForColumn:@"name"]; NSInteger age=[resultSet intForColumn:@"age"]; NSString* sex=[resultSet stringForColumn:@"sex"]; str=[str stringByAppendingFormat:@"Name:%@,Age:%d,Sex:%@\n",name,age,sex]; NSLog(@"Name:%@,Age:%d,Sex:%@\n",name,age,sex); } _showLabel.text=str; [database close];}//查询- (IBAction)checkBtn:(id)sender { FMDatabase* database=[FMDatabase databaseWithPath:[self databasePath]]; if (![database open]) { return; } FMResultSet* resultSet=[database executeQuery:@"select* from user where name = ?",@"chen"]; NSString* str=@""; while ([resultSet next]) { NSString* name=[resultSet stringForColumn:@"name"]; NSInteger age=[resultSet intForColumn:@"age"]; NSString* sex=[resultSet stringForColumn:@"sex"]; str=[str stringByAppendingFormat:@"Name:%@,Age:%d,Sex:%@\n",name,age,sex]; } _showLabel.text=str; [database close];}//删除- (IBAction)deleteBtn:(id)sender { FMDatabase* database=[FMDatabase databaseWithPath:[self databasePath]]; if (![database open]) { return; } BOOL delete=[database executeUpdate:@"delete from user where name = ?",@"chen"]; if (delete) { UIAlertView* alert=[[UIAlertView alloc] initWithTitle:@"提示" message:@"删除成功" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定",nil]; [alert show]; [alert release]; } [database close];}//更新- (IBAction)updateBtn:(id)sender { FMDatabase* database=[FMDatabase databaseWithPath:[self databasePath]]; if (![database open]) { return; } BOOL update=[database executeUpdate:@"update user set age = ? where name= ?",[NSNumber numberWithInt:20],@"chen"]; if (update) { UIAlertView* alert=[[UIAlertView alloc] initWithTitle:@"提示" message:@"更新成功" delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定",nil]; [alert show]; [alert release]; } [database close];}-(NSString* )databasePath{ NSString* path=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; NSString* dbPath=[path stringByAppendingPathComponent:@"user.db"]; return dbPath; }@end
- ios数据存储方式FMDB
- ios数据存储方式FMDB
- ios数据存储方式FMDB
- iOS - 数据存储方式FMDB
- 数据库 - ios数据存储方式FMDB
- ios FMDB 存储数据
- iOS-数据存储之FMDB
- IOS 数据存储之 FMDB 详解
- iOS开发 数据存储之FMDB
- iOS 存储之FMDB
- fmdb存储数据
- IOS数据存储方式
- iOS数据存储方式
- iOS数据存储方式
- ios 数据存储方式
- 【iOS开发】数据存储之coredata、sqlite、fmdb和sqlitepersistentobject
- iOS数据存储方式总结
- iOS中数据存储方式
- 6步教你在STM32程序中添加 printf函数
- Zen Cart与Magento对比哪个比较好
- MySQL 建表字段长度的限制
- Solaris11配置dns
- c语言中通过函数指针实现函数重载
- ios数据存储方式FMDB
- VxWorks中高精度实时时钟的实现及C语言汇编混合编程
- 网页中、英文安全字体选择及设置
- android init.rc
- python 抽取字符串中的数字filter(str.isdigit, item)
- MFC CSocket正确设置接收和发送超时
- STM32 IAP程序 源码 和测试代码
- 正确地做事与做正确的事同样重要
- VB 控件分类----内部控件;ActiveX 控件;可插入的对象