sqlite运用总结

[color=darkblue]1、打开数据库。[/color]

//打开数据库
-(BOOL)openDatabase{
NSArray *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask,YES);
NSString *paths = [[path objectAtIndex:0] stringByAppendingPathComponent:@"NineCellDiaryDB.sqlite3"];
if(sqlite3_open([paths UTF8String], &database) != SQLITE_OK){
[self closeDatabase];
return NO;
}return YES;
}

[color=darkblue]2、关闭数据库。[/color]

//关闭数据库
-(BOOL)closeDatabase{
return (sqlite3_close(database) == SQLITE_OK)?YES:NO;
}

[color=darkblue]3、插入数据。[/color]

//打开数据库
if(![self openDatabase]){
[self closeDatabase];
return NO;
}

sqlite3_stmt *insert_statement;
//准备sql语句
const char* sql = "insert into userinfo(uname,upassword,uexp,uportrait) values(?,?,?,?)";
//绑定语句值
if (sqlite3_prepare_v2(database,sql, -1, &insert_statement, NULL) != SQLITE_OK)return NO;
sqlite3_bind_text(insert_statement, 1, [name UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(insert_statement, 2, [passwd UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_int(insert_statement, 3, [e intValue]);

//提供png格式和jpg格式支持
int returnValue = -1;
NSData *imageData = nil;
UIImage *por = [UIImage imageNamed:@"kill.png"];
imageData = UIImagePNGRepresentation(por);//png格式
if (nil == por) {
returnValue = sqlite3_bind_blob(insert_statement, 4, nil, -1, NULL);
}else {
returnValue = sqlite3_bind_blob(insert_statement, 4,[imageData bytes],[imageData length], NULL);
}

//执行插入
if (sqlite3_step(insert_statement) != SQLITE_DONE) {
sqlite3_finalize(insert_statement);
[self closeDatabase];
return NO;
}
sqlite3_finalize(insert_statement);
[self closeDatabase];

[color=darkblue]4、更新数据。[/color]

//打开数据库
if(![self openDatabase]){
[self closeDatabase];
return NO;
}

//准备陈述命令
sqlite3_stmt *update_statement;
//准备sql语句
const char* sql = "update userinfo set uname=?,upassword=?,uexp=?,uportrait=? where id=1";
//绑定语句值
if (sqlite3_prepare_v2(database,sql, -1, &update_statement, NULL) != SQLITE_OK)return NO;
sqlite3_bind_text(update_statement, 1, [name UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_text(update_statement, 2, [passwd UTF8String], -1, SQLITE_TRANSIENT);
sqlite3_bind_int(update_statement, 3, [e intValue]);

//提供png格式和jpg格式支持
int returnValue = -1;
NSData *imageData = nil;
UIImage *por = [UIImage imageNamed:@"killer.png"];
if (nil == por) {
returnValue = sqlite3_bind_blob(update_statement, 4, nil, -1, NULL);
}else {
imageData = UIImageJPEGRepresentation(por,1.0f);//jpg格式
returnValue = sqlite3_bind_blob(update_statement, 4,[imageData bytes],[imageData length], NULL);
}
}

//执行
if (sqlite3_step(update_statement) != SQLITE_OK){
sqlite3_finalize(update_statement);
[self closeDatabase];
return NO;
}
sqlite3_finalize(update_statement);
[self closeDatabase];

[color=darkblue]5、查询数据[/color]

//打开数据库
if (![self openDatabase]) {
return self;
}

//查询所有数据
sqlite3_stmt *statement;
const char* zTail;
sqlite3_prepare_v2(database,"SELECT * from userinfo;",-1,&statement,&zTail);

const unsigned char *name;
const unsigned char *password;
int exp=0;
NSString *newName = nil;
NSString *newPassword = nil;
NSData *imgData = nil;

[color=green]//sqlite3_reset(statement);[/color]

if (SQLITE_ROW == sqlite3_step(statement)) {
name = sqlite3_column_text(statement,1);
password = sqlite3_column_text(statement,2);
exp = sqlite3_column_int(statement,3);
if (NULL != sqlite3_column_blob(statement,4)) {
imgData = [[NSData alloc] initWithBytes:sqlite3_column_blob(statement,4) length:sqlite3_column_bytes(statement, 1)];
}
newName = [NSString stringWithCString:name encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF8)];
newPassword = [NSString stringWithCString:password encoding:CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingUTF8)];
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值