sqlite3简单操作

前端之家收集整理的这篇文章主要介绍了sqlite3简单操作前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
//
//  ViewController.m
//  sqlLite
//
//  Created by 麦子 on 15/6/25.
//  Copyright (c) 2015年 麦子. All rights reserved.
//

#import "ViewController.h"
#import <sqlite3.h> // 系统目录下,

@interface ViewController ()

@end

@implementation ViewController{

   sqlite3_stmt *stmt;
}

- (void)viewDidLoad {
    [super viewDidLoad];
     self.title = @"sqlLite学习";
    self.view.backgroundColor = [UIColor whiteColor];
    [self sqlLiteHandle];
}

/****
    数据库操作  和 java的一样,同时也有预处理,只是这些操作都是用C函数来进行处理
 
    都在sqlite3这个包里面。
 
 */
- (void)sqlLiteHandle{
    // 打开数据库
    NSString *path = NSHomeDirectory();
    path = [path stringByAppendingPathComponent:@"mydb.sqlite"];//不存在就创建,然后打开
    NSLog(@"%@",path); // 每次创建都不一样的路径
    sqlite3 *db;
    int result = sqlite3_open([path UTF8String],&db);
    if (result != sqlITE_OK) {
        NSLog(@"数据库打开失败");
    }
    // 操作数据库
    [self createTable:db];
    
    // 删除
    [self tableDel:db];
    
    // 添加
    [self tableAdd:db];
    
    // 修改
    [self tableUpdate:db];
    
    // 查找
    [self tableFind:db];
    
    // 关闭数据库
    sqlite3_finalize(stmt);
    sqlite3_close(db);

}

// 创建表
- (void)createTable:(sqlite3 *)sqliteDb{
   NSString *sql = @"create table if not exists student(name text,sex text,age integer)";
    char *err; // 出错对象
    int result = sqlite3_exec(sqliteDb,[sql UTF8String],NULL,&err);
    if (result == sqlITE_OK) {
        NSLog(@"创建表成功....");
        
    }
}


// 增加
- (void)tableAdd:(sqlite3 *)sqliteDb{
    NSString *sql = @"insert into student (name,sex,age) values ('小强','男',25)";
    char *err; // 出错对象
    int result = sqlite3_exec(sqliteDb,&err);
    if (result == sqlITE_OK) {
        NSLog(@"添加成功....");
    }

}


// 删除
- (void)tableDel:(sqlite3 *)sqliteDb{
    NSString *sql = @"delete from student";
    char *err; // 出错对象
    int result = sqlite3_exec(sqliteDb,&err);
    if (result == sqlITE_OK) {
        NSLog(@"删除成功....");
    }
}


//修改
- (void)tableUpdate:(sqlite3 *)sqliteDb{
    NSString *sql = @"update student set name = '麦子' ";
    char *err; // 出错对象
    int result = sqlite3_exec(sqliteDb,&err);
    if (result == sqlITE_OK) {
        NSLog(@"修改成功....");
    }
}

// 查找
- (NSArray *)tableFind:(sqlite3 *)sqliteDb{
    NSString *sql = @"select * from student";
    
    int result = sqlite3_prepare_v2(sqliteDb,-1,&stmt,NULL);
    if (result == sqlITE_OK) {
        NSLog(@"查询成功....");
        // 循环  重这个结果集里面获取数据,也是以二维数组的形式来获取
        while (sqlite3_step(stmt) == sqlITE_ROW) {
            char *name = (char *)sqlite3_column_text(stmt,0);
            char *sex = (char *)sqlite3_column_text(stmt,1);
            int  age = sqlite3_column_int(stmt,2);
            NSString *strName = [NSString stringWithUTF8String:name];
            NSString *strSex = [NSString stringWithUTF8String:sex];
            NSLog(@"name=%@-->sex=%@-->age=%d",strName,strSex,age);
            
        }
    }
    return nil;
}



- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}

@end
原文链接:https://www.f2er.com/sqlite/199527.html

猜你在找的Sqlite相关文章