FMDB 基本使用

 
 
 // 0.拼接数据库存放的沙盒路径
    NSString *path = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).lastObject;
    NSString *sqlFilePath = [path stringByAppendingPathComponent:@"student.txt"];
   
    // 1.通过路径创建数据库
    FMDatabase * db = [FMDatabase databaseWithPath:sqlFilePath];
    self.db = db;
   
   // NSLog(@"%@\n%@",path,sqlFilePath);
   
    if ([self.db open]) {
        NSLog(@"打开成功");
        BOOL success = [self.db executeUpdate:@"CREATE TABLE IF NOT EXISTS t_student (id INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, age INTEGER DEFAULT 1)"];
        if (success) {
            NSLog(@"创建表成功");
        } else {
            NSLog(@"创建表失败");
        }
    } else {
        NSLog(@"打开失败");
    }
 
 
 
//插入数据
- (void)addDataToSqlite{
    age++;
    BOOL success = [self.db executeUpdate:@"INSERT INTO t_student (name,age) VALUES (?,?);",@"jack",@(age)];
   
    if (success) {
        NSLog(@"插入成功");
    } else {
        NSLog(@"插入失败");
    }
}
//删除数据
- (void)deleteDataFromSqlite{
    // 删除数据
    BOOL success = [self.db executeUpdate:@"DELETE FROM t_student WHERE age > 15 AND age < 25;"];
    if (success) {
        NSLog(@"删除成功");
    } else {
        NSLog(@"删除失败");
    }
}
//修改数据
- (void)changeDataFromSqlite{
    // 修改数据
    BOOL success = [self.db executeUpdate:@"UPDATE t_student SET name = 'liwx' WHERE age > 12 AND age < 15;"];
    if (success) {
        NSLog(@"修改成功");
    } else {
        NSLog(@"修改失败");
    }
}
//查询数据
- (void)watchDataFromSqlite{
    //如果要查询范围  在最后面添加  WHERE age > 15
    FMResultSet * result = [self.db executeQuery:@"SELECT id, name, age FROM t_student "];
    while ([result next]) {
        int ID = [result intForColumnIndex:0];
        NSString *name = [result stringForColumnIndex:1];
        int age_resule = [result intForColumn:@"age"];
       
        NSLog(@"--------ID: %zd, name: %@, age: %zd", ID, name, age_resule);
    }
}
 
 

FMDatabaseQueue数据库队列基本使用

使用FMDatabaseQueue类在多线程中执行多个查询或更新是线程安全的.
 
 

猜你喜欢

转载自www.cnblogs.com/Jackie-subDai/p/9290192.html