????sqlite????????????????????????????????????????????????????豸?е????????á?iOS??SDK???翪??????SQLite?????????????? libsqlite3.dylib ??????? sqlite3.h ??????????????????sqlite??API???????????????????????????????????????????FMDB????С?
????FMDB???????
????1.FMDatabase – ????????????SQLite????? ???????SQLite?????
????2.FMResultSet – ???FMDatabase??в????????
????3.FMDatabaseQueue – ??????????????в???????????????????????
????FMDB?????
???????????????
????????FMDatabase?????????????SQLite????????·??????·????????????????????
????1..???·?????????·??????????棬???????????????????
????2..???????(@”")???????????????????????????????FMDatabase ????????????????????
????3.NULL. ?????????????????????????FMDatabase???????????????????
????????????
???????????????????????е??????????????????????浱?е???????????????????????????????????????????????????????????????????????????????????????????б????????????????????????????????????????????????????????????д??????????????????????????????????????
????????????
???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????洢?????????е??????????????????????????????????????????????????????У??????????????????????????????????SQLite??????и???????????????????????????????????е????????д??????????У?????????????????????????????С?
?????????????FMDatabase *db= [FMDatabase databaseWithPath:dbPath] ;
???????????????????????????????????????????????????????????????????????′?????
???????????????????????????
????NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory?? NSUserDomainMask?? YES);
????NSString *documentDirectory = [paths objectAtIndex:0];
????//dbPath?? ?????·?????????Document?С?
????NSString *dbPath = [documentDirectory stringByAppendingPathComponent:@"MYTest.db"];
????//???????????? db  ?????????:???·???в?????"MYTest.db"???????sqlite?????????"MYTest.db"
????FMDatabase *db= [FMDatabase databaseWithPath:dbPath] ;
????if (![db open]) {
????NSLog(@"Could not open db.");
????return ;
????}
???????2???
??????в???SELECT??????????2?????????CREATE?? UPDATE?? INSERT??ALTER??COMMIT?? BEGIN?? DETACH?? DELETE?? DROP?? END?? EXPLAIN?? VACUUM??REPLACE???
???????????
????[db executeUpdate:@"CREATE TABLE myTable (Name text??Age integer)"];
????????
????[db executeUpdate:@"INSERT INTO myTable (Name??Age) VALUES (????)"??@"jason"??[NSNumber numberWithInt:20]];
????????
????[db executeUpdate:@"UPDATE myTable SET Name = ? WHERE Name = ? "??@"john"??@"jason"];.
???????
????[db executeUpdate:@"DELETE FROM myTable WHERE Name = ?"??@"jason"];
???????????
????SELECT????????????в??????????? -excuteQuery????????в???????????????FMResultSet???? ??????nil. ????????????????while?????
????FMResultSet *s = [db executeQuery:@"SELECT * FROM myTable"];
????while ([s next]) {
????//????????????????
????}
????????????
????????????????????? -close ???????????????????SQLite?????????
????[db close];
????????
???????????£?????????????SQL??????????????????????磺
????INSERT INTO myTable VALUES (??? ??? ?)
?????????????????????executeUpdate????????????????????????????????????????????????????£?
????NSString *sql = @"insert into myTable (name?? password) values (??? ?)";
????[db executeUpdate:sql?? user.name?? user.password];
????????????????????????????NSObject????????????int??double??bool??????????????????????????
????[db executeUpdate:@"INSERT INTO myTable VALUES (?)"?? [NSNumber numberWithInt:42]];