SQLite3

来源:互联网 发布:网络机顶盒怎么设置 编辑:程序博客网 时间:2024/05/21 14:48
.分别导入头文件和libsqlite3.dylib框架
?
1
#import <sqlite3.h>

2.创建数据库句柄

?
1
    sqlite3 *db;

3.用创建的句柄创建或打开数据库

?
1
2
3
4
5
6
7
    //打开数据库
    if (sqlite3_open([daPath UTF8String], &db) != SQLITE_OK) {
        sqlite3_close(db);
        NSLog(@"打开错误");
    }else{
        NSLog(@"ok");
    }

4.数据表操作方法

?
1
2
3
4
5
6
7
8
9
- (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.创建数据表

?
1
2
3
4
-(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.在数据表中插入新数据

?
1
2
3
4
5
6
- (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.获取数据表中的数据

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
- (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;
0 0