sqlite是一种小型的轻量级的关系型数据库,在移动设备上使用是非常好的选择,无论是Android还是IOS,都内置了sqlite数据库,现在的版本都是sqlite3。在IOS中使用sqlite如果使用SDK提供的方法,特别麻烦也不利于理解和使用,在之前的http://blog.csdn.net/tangren03/article/details/7781930文章中就是使用IOS的SDK自带的sqlite API来使用数据库,感觉使用很不方便,今天就讲讲一个针对IOS的sqlite API封装的第三方库FMDB,FMDB对SDK中的API做了一层封装,使之使用OC来访问,使用方便而且更熟悉。FMDB的下载地址https://github.com/ccgus/fmdb。
FMDB主要涉及两个类,FMDatabase和FMResultSet,前者类似于Android中的sqliteOpenHelper或sqliteDatabase,FMResultSet类似于Android中的Cursor,用来存储结果集。
下载完FMDB源码后把文件拖到工程中,并导入sqlite支持库,工程目录如下:
然后就是这个Demo的完整截图:
然后就来看看如何操作FMDB:
- //点击按钮后执行保存到数据库的操作
- -(IBAction)saveButtonClicked:(id)sender{
- //获取Document文件夹下的数据库文件,没有则创建
- NSString*docPath=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES)objectAtIndex:0];
- NSString*dbPath=[docPathstringByAppendingPathComponent:@"user.db"];
- //获取数据库并打开
- FMDatabase*database=[FMDatabasedatabaseWithPath:dbPath];
- if(![databaSEOpen]){
- NSLog(@"OpendatabaseFailed");
- return;
- }
- //创建表(FMDB中只有update和query操作,出了查询其他都是update操作)
- [databaseexecuteUpdate:@"createtableuser(nametext,gendertext,ageinteger)"];
- //插入数据
- BOOLinsert=[databaseexecuteUpdate:@"insertintouservalues(?,?,?)",nameTextField.text,genderTextField.text,ageTextField.text];
- if(insert){
- UIAlertView*alert=[[UIAlertViewalloc]initWithTitle:@"提示"message:@"保存成功"delegate:selfcancelButtonTitle:@"确定"otherButtonTitles:nil,nil];
- [alertshow];
- [alertrelease];
- [databaseclose];
- }
操作成功后弹出提示框: