1.建立single view工程,匯入FMDatabase庫,匯入libsqlite3系統庫;
2.ViewController.xib檔案
3.ViewController.h
@interface ViewController : UIViewController{ IBOutlet UITextField *_name; IBOutlet UIImageView *_image; FMDatabase *_db;}- (IBAction)add:(id)sender;- (IBAction)del:(id)sender;- (IBAction)search:(id)sender;- (IBAction)update:(id)sender;
4.ViewController.m
- (void)viewDidLoad{ [super viewDidLoad]; // _image.userInteractionEnabled = YES; //為UIImageView輕觸手勢 UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(selectImage)];// tap.numberOfTapsRequired = 2;//雙擊觸發,預設單擊// tap.numberOfTouchesRequired = 2;//兩個手指同時按,預設單指 [_image addGestureRecognizer:tap]; [tap release]; //資料庫路徑 NSString *path = [NSString stringWithFormat:@"%@/Documents/data.db", NSHomeDirectory()]; _db = [[FMDatabase alloc] initWithPath:path]; }- (void)selectImage{ UIImagePickerController *ipc = [[UIImagePickerController alloc] init]; ipc.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;//設定圖片來源為相簿 ipc.delegate = self; [self presentViewController:ipc animated:YES completion:nil];//用模態視圖來展示選擇視窗 [ipc release];}//選擇圖片調用- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{ _image.image = [info objectForKey:UIImagePickerControllerOriginalImage]; [self dismissViewControllerAnimated:YES completion:nil];}//點擊取消調用- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker{ [self dismissViewControllerAnimated:YES completion:nil];}- (IBAction)add:(id)sender{ if (_name.text == nil || _image.image == nil) { NSLog(@"空"); return; } //開啟資料庫 BOOL res = [_db open]; if (res == NO) { NSLog(@"開啟失敗"); return ; } //開啟成功 //建立表 res = [_db executeUpdate:@"create table if not exists studentss(id integer primary key autoincrement, name, image)"]; if (res == NO) { NSLog(@"建立表失敗"); [_db close]; return; } //NSNumber NSString NSData //插入資料 NSData *data = UIImagePNGRepresentation(_image.image); res = [_db executeUpdate:@"insert into studentss(name, image) values(?,?)",_name.text, data]; if (res == NO) { NSLog(@"插入失敗"); } [_db close];}- (IBAction)del:(id)sender{ BOOL res = [_db open]; if (res == NO) { NSLog(@"開啟失敗"); return; } res = [_db executeUpdate:@"delete from studentss where name=?", _name.text]; if (res == NO) { NSLog(@"刪除失敗"); } [_db close];}- (IBAction)search:(id)sender{ BOOL res = [_db open]; if (res == NO) { NSLog(@"開啟失敗"); return; } FMResultSet *set = [_db executeQuery:@"select * from studentss"]; while ([set next]) { int uid = [set intForColumn:@"id"];//根據欄位名來取// int uid = [set intForColumnIndex:0];根據欄位索引來取 NSString *name = [set stringForColumnIndex:1];// NSData *data = [set dataForColumn:@"image"]; NSLog(@"%d---%@", uid, name); } [_db close];}- (IBAction)update:(id)sender{ BOOL res = [_db open]; if (res == NO) { NSLog(@"開啟失敗"); return; } res = [_db executeUpdate:@"update studentss set name='bala' where name=?", _name.text]; if (res == NO) { NSLog(@"update失敗"); } [_db close];}