//
// ViewController.m
// 图片存取
//
// Created by apple on 14-8-28.
// Copyright (c) 2014年 apple. All rights reserved.
//
#import "ViewController.h"
#import <sqlite3.h>
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
NSString *imagePath=[[NSBundle mainBundle]pathForResource:@"20140727_4a88ec45b0ba50d4f06015b18521e12b" ofType:@"png"];
NSData *imageData=UIImagePNGRepresentation([UIImage imageWithContentsOfFile:imagePath]);
NSString *bdPath=[NSHomeDirectory() stringByAppendingPathComponent:@"/Documents/image.bd"];
NSLog(@"%@",bdPath);
sqlite3 *imageDatabase;
int ret=sqlite3_open([bdPath UTF8String],&imageDatabase);
if (ret!=SQLITE_OK) {
NSLog(@"open failed");
return;
}
NSString *sql=@"CREATE TABLE IF NOT EXISTS history (hid integer primary key autoincrement not null, name text,image blob)";
sqlite3_stmt *stmt;
ret=sqlite3_prepare(imageDatabase, [sql UTF8String], -1, &stmt, NULL);
if (ret!=SQLITE_OK) {
NSLog(@"prepare failed");
sqlite3_close(imageDatabase);
return;
}
//执行SQL语句
ret = sqlite3_step(stmt);
if (ret != SQLITE_DONE) {
NSLog(@"step failed!");
//终止会话
sqlite3_finalize(stmt);
sqlite3_close(imageDatabase);
return;
}
sqlite3_finalize(stmt);
NSString *insertSQL2 = @"INSERT INTO history (name,image) VALUES(?,?)";
sqlite3_stmt *stmt2;
ret = sqlite3_prepare_v2(imageDatabase, [insertSQL2 UTF8String], -1, &stmt2, NULL);
if (ret != SQLITE_OK) {
NSLog(@"prepare stmt2 failed");
sqlite3_close(imageDatabase);
return;
}
NSString *name = @"赵柳";
//给会话绑定数据
sqlite3_bind_text(stmt2, 1, [name UTF8String], -1, NULL);
sqlite3_bind_blob(stmt2, 2, [imageData bytes], [imageData length], NULL);
ret = sqlite3_step(stmt2);
if (ret != SQLITE_DONE) {
NSLog(@"insert stmt2 failed");
sqlite3_finalize(stmt2);
sqlite3_close(imageDatabase);
return;
}
else {
int count = sqlite3_changes(imageDatabase);
NSLog(@"insert success: %d", count);
}
sqlite3_close(imageDatabase);
//取图片
NSString *select = @"SELECT * FROM history where name=?";
sqlite3_stmt *stmtGet;
ret = sqlite3_prepare_v2(imageDatabase, [select UTF8String], -1, &stmtGet, NULL);
if (ret != SQLITE_OK) {
NSLog(@"prepare stmt2 failed");
sqlite3_close(imageDatabase);
return;
}
else
{
NSString *name=@"赵柳";
sqlite3_bind_text(stmtGet, 1,[name UTF8String], -1, NULL);
if (sqlite3_step(stmtGet)==SQLITE_ROW) {
int byte=sqlite3_column_bytes(stmtGet, 2);
Byte *imgByte=(Byte *)sqlite3_column_blob(stmtGet, 2);
NSData *imgData=[NSData dataWithBytes:imgByte length:byte];
UIImageView *imageView=[[UIImageView alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
imageView.backgroundColor=[UIColor redColor];
imageView.image=[UIImage imageWithData:imgData];
[self.view addSubview:imageView];
}
sqlite3_close(imageDatabase);
}
// NSString *name = @"赵柳";
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end