FMDB的简单使用

创建5个UITextField用来输入联系人姓名,电话,年龄,邮箱,地址。自己创建。

首先导入FMDB,再添加libsqlite3.tbd,在修改添加修改-fno-objc-arc,如下图所示

FMDB的简单使用_第1张图片FMDB的简单使用_第2张图片

FMDB的简单使用_第3张图片

环境配置好了之后,开始正式的操作。

  1. 创建数据库和数据表,并向其中插入数据

+(BOOL)insertDataIntoSql:(LHCDataModel *)model
{
    NSString *dbString = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/User.db"];
    FMDatabase *database = [[FMDatabase alloc] initWithPath:dbString];
    [database open];
    //创建表格的SQL语句//primary key不能重复//autoincrement自增长
    NSString *createTableSql = @"create table if not exists MyFriends(id integer primary key autoincrement, name varchar(256), phone varchar(256), age varchar(256), email varchar(256),address varchar(256))";
    //创建数据困中得表格
    BOOL table = [database executeUpdate:createTableSql];
    NSLog(@"table = %i",table);
    NSLog(@"path = %@",dbString);
    
    //创建插入数据的SQL语句
    NSString *insertSql = @"insert into MyFriends(name,phone,age,email,address) values (?,?,?,?,?)";
    BOOL insert = [database executeUpdate:insertSql,model.name,model.phone,model.age,model.email,model.address];
    NSLog(@"insert = %i",insert);
    //关闭数据库
    [database close];
    return insert;
}

这里我们创建了一个User.db的数据库和一张名为MyFriends的表,表中有6个元素:id, name, phone, age, email,address. 

2.查询表中数据

+(NSMutableArray *)readDataFromSql
{
    NSMutableArray *dataArray = [[NSMutableArray alloc] init];
    NSString *dbString = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/User.db"];
    FMDatabase *database = [[FMDatabase alloc] initWithPath:dbString];
    [database open];
    
    NSString *selectString = @"select * from MyFriends";
    FMResultSet *set = [database executeQuery:selectString];
    while ([set next]) {
        LHCDataModel *model = [[LHCDataModel alloc] init];
        model.name  = [set stringForColumn:@"name"];
        model.phone  = [set stringForColumn:@"phone"];
        model.age  = [set stringForColumn:@"age"];
        model.email  = [set stringForColumn:@"email"];
        model.address  = [set stringForColumn:@"address"];
        model.rowId = [[set stringForColumn:@"id"] integerValue];
        [dataArray addObject:model];
    }
    [database close];
    return dataArray;
}

3.修改表中数据

+(BOOL)updateDataFromSql:(LHCDataModel *)model andbefore:(LHCDataModel *)beModel
{
    NSString *dbString = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/User.db"];
    FMDatabase *database = [[FMDatabase alloc] initWithPath:dbString];
    [database open];
    //判断条件可用id,如下面的删除数据
    NSString *updateString = @"update MyFriends set name = ?,  phone = ? , age = ? , email = ? , address = ? where name = ? and phone = ?";
    BOOL update = [database executeUpdate:updateString,model.name,model.phone,model.age,model.email,model.address,beModel.name,beModel.phone];
    NSLog(@"update = %i",update);
    
    [database close];
    return update;
    
}

4.删除表中数据

+(BOOL)deleteDataFromSql:(LHCDataModel *)model
{
    NSString *dbString = [NSHomeDirectory() stringByAppendingPathComponent:@"Documents/User.db"];
    FMDatabase *database = [[FMDatabase alloc] initWithPath:dbString];
    [database open];
    NSString *deleteString = @"delete from MyFriends where id = ?";
    BOOL delete = [database executeUpdate:deleteString,[NSString stringWithFormat:@"%ld",model.rowId]];
    NSLog(@"delete = %i",delete);
    return delete;
}

到这里结合UI简易通讯录的核心操作差不多完成了

FMDB的简单使用_第4张图片FMDB的简单使用_第5张图片FMDB的简单使用_第6张图片FMDB的简单使用_第7张图片

这里写的比较简陋,可参考我的Demo简易通讯录

地址:http://git.oschina.net/haitangliuxing/MyAddressBook


你可能感兴趣的:(FMDB的简单使用)