fmdb的一些基本的用法
来源:互联网 发布:洛阳师范学院网络教学 编辑:程序博客网 时间:2024/04/27 13:22
FMDatabase其实是一个很轻级的sqlite数据库封装库,用Object-C封装C,它主要有2个类:FMDatabase和FMResultSet
要使用它首先就要下载这个开源库,它的下载地址是:https://github.com/ccgus/fmdb
下载完成后,我们就可以开始使用它了:
然后,就需要添加sqlite框架
下面就介绍一下它的用法:
1.首先我们需要创建一个FMDatabase实例:
+(FMDatabase*)DataBaseSigonInstance
{
//数据库初始化
NSString *homeDir =NSHomeDirectory();
//NSLog(@"%@",homeDir);
NSString *dbPath = [homeDirstringByAppendingPathComponent:@"Library/Caches/FMDatabaseDemo.db"];
FMDatabase *database = [FMDatabasedatabaseWithPath:dbPath];
return database;
}
//打开数据库
FMDatabase *db = [FMDataBasePathDataBaseSigonInstance];
if (!db.open)
{
NSLog(@"fail to open database");
return;
}
db.logsErrors =YES;//开启错误日志
[db executeUpdate:@"CREATE TABLE IF NOT EXISTS studentTable(name varchar,age integer,totalScore float)"];
[dbclose];
FMDatabase *db = [FMDataBasePathDataBaseSigonInstance];
if (!db.open)
{
NSLog(@"fail to open database");
return;
}
//获得数据
student.name = ((UITextField*)[alertViewviewWithTag:TEXTFIELD_TAG]).text;
student.age = [((UITextField*)[alertViewviewWithTag:TEXTFIELD_TAG + 1]).textintValue];
student.totalScore = [((UITextField*)[alertViewviewWithTag:TEXTFIELD_TAG + 2]).textfloatValue];
db.logsErrors =YES;
[db executeUpdate:@"insert into studentTable(name,age,totalScore)values(?,?,?)",student.name,[NSNumbernumberWithInt:student.age],[NSNumbernumberWithFloat:student.totalScore]];//注意参数必须是对象
[dbclose];
FMDatabase *db = [FMDataBasePathDataBaseSigonInstance];
if (!db.open)
{
NSLog(@"fail to open!");
return;
}
db.logsErrors =YES;
NSString *delDataSqlStr =@"delete from studentTable";
[dbexecuteUpdate:delDataSqlStr];
[dbclose];
FMDatabase *db = [FMDataBasePathDataBaseSigonInstance];
if (!db.open)
{
NSLog(@"fail to open!");
return;
}
db.logsErrors =YES;
[db executeUpdate:@"update studentTable set totalScore = 100"];
[dbclose];
FMDatabase *db = [FMDataBasePathDataBaseSigonInstance];
if (!db.open)
{
NSLog(@"fail to open!");
return;
}
db.logsErrors =YES;
FMResultSet *rs = [dbexecuteQuery:@"select * from studentTable"];
NSMutableArray *studentArr = [[NSMutableArrayalloc]init];
while ([rsnext])
{
NSMutableDictionary *dic = [[NSMutableDictionaryalloc]init];
[dic setValue:[rsstringForColumn:@"name"]forKey:@"name"];
[dic setValue:[NSNumbernumberWithInt:[rsintForColumn:@"age"]]forKey:@"age"];
[dic setValue:[NSNumbernumberWithDouble:[rsdoubleForColumn:@"totalScore"]]forKey:@"totalScore"];
[studentArraddObject:dic];
[dicrelease];
}
for (int count = 0; count< [studentArrcount]; count++)
{
NSLog(@"sudent:%@ age:%@ totalScore:%@",[[studentArrobjectAtIndex:count]objectForKey:@"name"],[[studentArrobjectAtIndex:count]objectForKey:@"age"],[[studentArrobjectAtIndex:count]objectForKey:@"totalScore"]);
}
[studentArrrelease];
[dbclose];
- (BOOL)executeUpdate:(NSString*)sql, ...; 这个是用于执行无结果的sql语句的
- (FMResultSet *)executeQuery:(NSString*)sql, ...; 这个是用于执行有结果的sql语句的
FMResultSet:
- (BOOL)next; 结果集的下一个
- (int)columnCount; 结果集的字段个数
- (int)intForColumn:(NSString*)columnName; 获取整形字段的信息(下面的都是同理)
- (int)intForColumnIndex:(int)columnIdx;
- (long)longForColumn:(NSString*)columnName;
- (long)longForColumnIndex:(int)columnIdx;
- (longlongint)longLongIntForColumn:(NSString*)columnName;
- (longlongint)longLongIntForColumnIndex:(int)columnIdx;
- (unsignedlonglong int)unsignedLongLongIntForColumn:(NSString*)columnName;
- (unsignedlonglong int)unsignedLongLongIntForColumnIndex:(int)columnIdx;
- (BOOL)boolForColumn:(NSString*)columnName;
- (BOOL)boolForColumnIndex:(int)columnIdx;
- (double)doubleForColumn:(NSString*)columnName;
- (double)doubleForColumnIndex:(int)columnIdx;
- (NSString*)stringForColumn:(NSString*)columnName;
- (NSString*)stringForColumnIndex:(int)columnIdx;
- (NSDate*)dateForColumn:(NSString*)columnName;
- (NSDate*)dateForColumnIndex:(int)columnIdx;
- (NSData*)dataForColumn:(NSString*)columnName; 获取二进制数据(图片可以使用这个)
- (NSData*)dataForColumnIndex:(int)columnIdx;
- fmdb的一些基本的用法
- 关于FMDB的一些用法
- FMDB的一些基本操作小结
- FMDB的一些基本操作小结
- iOS FMDB的一些基本操作小结
- FMDB的一些基本操作小结
- FMDB的一些基本操作小结
- FMDB的基本操作
- FMDB的基本使用
- FMDB的基本使用
- FMDB的基本使用
- FMDB的基本使用
- FMDB的基本使用
- FMDB的基本使用
- FMDB的基本使用
- FMDB的用法讲解
- FMDB 数据库的基本写法
- 关于FMDB的基本使用
- 二维码扫描
- 转 python正则表达式判断文本中是否有中文
- jquery构造from提交表单
- web登陆过程总结
- openfoam中计算patch到面积
- fmdb的一些基本的用法
- java web项目改名
- 第十二周项目3——日期时间类
- 2014网易游戏测试工程师面试题
- Http协议3XX重定向介绍及301跳转和302跳转应用场景
- 液压榨油机的发展前景
- [CCNA] IP寻址
- 附加到进程调试理解(初步)
- 【翻译】将Ext JS Grid转换为Excel表格