ios sqlite3數據庫操做

1.分別導入頭文件和libsqlite3.dylib框架sql

#import <sqlite3.h>

2.建立數據庫句柄數據庫

    sqlite3 *db;

3.用建立的句柄建立或打開數據庫框架

    //打開數據庫
    if (sqlite3_open([daPath UTF8String], &db) != SQLITE_OK) {
        sqlite3_close(db);
        NSLog(@"打開錯誤");
    }else{
        NSLog(@"ok");
    }

4.數據表操做方法code

- (void)execSql:(NSString *)sql{
    char *err = nil;
    if (sqlite3_exec(db, [sql UTF8String], nil, nil, &err) != SQLITE_OK) {
        sqlite3_close(db);
        NSLog(@"%@ err:%s", sql, err);
    }else {
        NSLog(@"%@ ok", sql);
    }
}

5.建立數據表orm

-(void)createOrOpenTable{
    NSString *sqlCreateTable = @"CREATE TABLE IF NOT EXISTS Students (ID INTEGER PRIMARY KEY AUTOINCREMENT, name varchar(20), age INTEGER, school varchar(40))";
    [self execSql:sqlCreateTable];
}

6.在數據表中插入新數據sqlite

- (void)insertAValueWithName:(NSString *)aName andAge:(NSInteger)anAge andSchool:(NSString *)aSchool{
    NSString *sql1 = [NSString stringWithFormat:
                      @"INSERT INTO Students (name, age, school) VALUES ('%@', '%d', '%@')"
                      , aName, anAge, aSchool];
    [self execSql:sql1];
}

7.獲取數據表中的數據get

- (NSMutableArray *)getPersons{
    NSString *sqlQuery = @"select * from Students";
    sqlite3_stmt *statement;
    
    NSMutableArray *personArray = [NSMutableArray array];

    if (sqlite3_prepare_v2(db, [sqlQuery UTF8String], -1, &statement, nil) == SQLITE_OK) {
        while (sqlite3_step(statement) == SQLITE_ROW) {
            char *name = (char *)sqlite3_column_text(statement, 1);
            NSString *nameString = [NSString stringWithUTF8String:name];
            
            int age = sqlite3_column_int(statement, 2);
            
            char *school = (char *)sqlite3_column_text(statement, 3);
            NSString *schoolString = [NSString stringWithUTF8String:school];
            Person *per = [[Person alloc] initWithName:nameString andAge:age andSchool:schoolString];
            
            [personArray addObject:per];
        }
    }else{
        NSLog(@"打開失敗");
    }

    return personArray;
}
相關文章
相關標籤/搜索