iOS开发-数据库-sqlite操作2

1.新建single view工程,导入FMDatabase库,导入libsqlite3系统库;

2.ViewController.xib文件


3.ViewController.h

@interface ViewController : UIViewController<UINavigationControllerDelegate, UIImagePickerControllerDelegate>{
    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];
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值