iOS移动开发数据库相关操作,基于…

来源:互联网 发布:巴西黑帮知乎 编辑:程序博客网 时间:2024/06/08 10:18


#pragma mark - FMDB 操作数据库


1.初始化一个数据库对象,关联路径,如果路径下的数据库不存在,open方法调用时会自动创建对应的数据库,若存在,打开当前路径下的数据库。

注:一个数据库对象只能操作一个数据库文件

DB_PATH :要创建或打开的数据库的路径


//创建并打开数据库

- (void)createDatabase

{

    //一个数据库对象只能操作一个数据库文件,关联路径

   _database =[[FMDatabase alloc]initWithPath:DB_PATH];

    //打开数据库,如果没有就创建

   BOOL ret =[_databaseopen];

   if (ret) {

       NSLog(@"数据库创建成功");

    }else{

       NSLog(@"路径错误");

    }

    

}


2.SQL语句操作,FMDatabase执行语句有两种执行方式,

[_databaseexecuteUpdate:sql,…][_databaseexecuteQuery:sql]

第一种是除查询意外的语句操作,那么第二种你懂得,返回值是一个BOOL变量,

//创建表

- (void)createTable

{

   // sql语句

    //sql不区分大小写,为了和字段和值区分,一般大写

   NSString* sql= @"CREATE TABLE 女演员(IDINTEGER PRIMARY KEY AUTOINCREMENT, 姓名CHAR(128), 国籍CHAR(128), 生日DATE)";

    

   // 通过fmdb调用sql语句,调用sql语句

   BOOLret =[_database executeUpdate:sql];

    if(ret) {

       NSLog(@"表达创建成功");

    }else{

      NSLog(@"sql创建表单错误");

    }

}



3.executeUpdate方法执行SQL语句的两种方式

//插入记录

- (void)insertRecord

{

#if 0

   // 方法1

   NSString * sql = @"INSERT INTO女演员(姓名,国籍)VALUES ('舒淇','中国香港')";

    BOOLret = [_database executeUpdate:sql];


#else

   NSString* sql= @"INSERT INTO 女演员(姓名,国籍,生日)VALUES (?, ?, ?)";

    BOOLret = [_databaseexecuteUpdate:sql,@"舒淇",@"中国香港",@"92-7-7"];

#endif

    if(ret) {

       NSLog(@"纪录添加成功");

    }else{

       NSLog(@"纪录添加失败");

    }

}


//查找记录

- (void)selectRecords

{

   NSString* sql= @"SELECT * FROM 女演员";

    // 返回值是一个结果集

   FMResultSet * rs= [_database executeQuery:sql];

    

    while(rs.next){

      NSLog(@"%d%@ %@ %@",[setintForColumn:@"ID"],[set stringForColumn:@"姓名"],[set stringForColumn:@"国籍"],[set stringForColumn:@"生日"]);

    }

    

}



4.操作完数据库一定要关闭数据库

//关闭文件

- (void)closeDatabase

{

   [_database close];

}



0 0
原创粉丝点击