Simple use of sqlite3

There is also sqlite3 in Android, mainly to record some basic grammars, ios provides encapsulated classes, and there is no need for the following operations

 

1. Create a database

#pragma mark - open database

-(BOOL)openDataBase{
    //1, store the path, store the document in the sandbox of the current application
    
    //    NSArray *arrayPath=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    //
    //    NSString *documentPath= [arrayPath objectAtIndex:0];//document路径
    
    NSString *documentPath= [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) firstObject];
    
    //database path
    NSString *sqlPath=[documentPath  stringByAppendingPathComponent:@"applicationData.db"];
    
    //open database
    //sqlPath.UTF8String converted to c string, pointer to sqlite3
    
    int result=sqlite3_open(sqlPath.UTF8String,&db);
    
    if (result==SQLITE_OK) {
        
         [self showDialogError:@"database open" andContent:@"success"];
        return true;
    }else{
        
        sqlite3_close(db);
        return false;
        
    }
    

}

 

2. Create database tables

#pragma mark-create database table

-(BOOL)createTable:(NSMutableDictionary*) createTableRowParams{
    
    char *sql;
    //create sql statement
    
    if ([createTableRowParams count]>0) {
        
        
    }else{
    
    sql= "create table if not exists UCS(id integer primary key,loginTime text,page text,pageCount integer);";
    
    }
    
    char *error=nil;
    //Execute sql statement
    sqlite3_exec(db, sql, nil, nil, &error);
    
    
    if (error==nil) {
        NSLog(@"The table was created successfully..");
    }else{
    
        NSLog(@"Failed to create table..");
    }
    
    return true;
}

 

 

3. Insert data:

////Insert data
-(void)insertTableData:(NSArray*)arrayData{
    NSDate * senddate=[NSDate date];
    NSDateFormatter *dateformatter=[[NSDateFormatter alloc] init];
    
   [dateformatter setDateFormat:@"YYYYMMddHHmmss"];
    NSString * morelocationString=[dateformatter stringFromDate:senddate];

    char *error=nil;
    
    for(int n=0;n<10;n++){
    
//    NSString *sql=[[NSString alloc]initWithFormat:@"insert into UCS(loginTime,page) values(?,?)",morelocationString,@"baihe"];
//        char *sql1 = @"insert into UCS(loginTime,page) values(?,?)";
//        
//    sqlite3_exec(db, sql1, NULL, NULL, &error);
//        
//    }
        
        
        char *sql="insert into UCS(loginTime,page,pageCount) values(?,?,?)";
        
        sqlite3_stmt *stmt=nil;
        
        if (sqlite3_prepare_v2(db, sql, -1, &stmt, NULL)==SQLITE_OK) {
            
            sqlite3_bind_text(stmt, 1, "loginTimedata", -1, NULL);
            sqlite3_bind_text(stmt, 2, "pagedata", -1, NULL);
            sqlite3_bind_int(stmt, 3, 100);
            
        }
        
        
        if (sqlite3_step(stmt)!=SQLITE_DONE) {
            
            NSLog(@"Failed to insert data.");

        }else{
         NSLog(@"Insert data successfully");
        
        }
        
        
  sqlite3_finalize(stmt);//Release
    
    }

}

 

Query data:

//Inquire
-(void)selectTableData{
    
//    NSString *sql=@"select * from UCS";
    char *sql="select * from UCS;";
    
    
    //
    sqlite3_stmt *ppStmt;
    
    
    // step through the statement
    if (sqlite3_prepare_v2(db, sql, -1, &ppStmt, NULL) == SQLITE_OK) {
        while (sqlite3_step(ppStmt)==SQLITE_ROW) {
            
            int id5=sqlite3_column_int(ppStmt, 0);
            
            char *cc=(char *)sqlite3_column_text(ppStmt, 2);
            int id6=sqlite3_column_int(ppStmt, 3);

            NSString *loginTime=[NSString stringWithUTF8String:cc];

            NSLog(@"id=%d,loginTime=%@ %d",id5,loginTime,id6);
        }
    }
    

    
    sqlite3_finalize(ppStmt);//Release

}

 

delete and update are similar

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326960616&siteId=291194637