使用FMDatabase操作sqlite3数据库非常简单和方便

 //
// main.m
// iOSDemo0602_sqlite3
//
// Created by yao_yu on 14-6-2.
// Copyright (c) 2014年 yao_yu. All rights reserved.
// #import <UIKit/UIKit.h>
#import "FMDatabase.h" void test01();
BOOL isfile(NSString *path);
BOOL isdir(NSString *path); int main(int argc, char * argv[])
{
@autoreleasepool {
test01();
}
return ;
} void test01()
{
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentationDirectory, NSUserDomainMask, YES);
NSString *docpath = [paths objectAtIndex:];
NSString *dbpath = [docpath stringByAppendingPathComponent:@"YY/Data2"];
// NSLog(@"%@", dbpath);
if (!isdir(dbpath)) {
NSFileManager *fileManager = [NSFileManager defaultManager];
[fileManager createDirectoryAtPath:dbpath withIntermediateDirectories:YES attributes:nil error:nil];
} NSString *dbfile = [dbpath stringByAppendingPathComponent:@"data.db"];
NSLog(@"%@", dbfile); //初始化
FMDatabase *db = [FMDatabase databaseWithPath:dbfile];
//打开数据库
[db open]; //删除表
[db executeUpdate:@"drop table persons"]; //添加表
[db executeUpdate:@"create table persons(id, name)"]; //删除原有数据
[db executeUpdate:@"delete from persons"]; //使用事务添加数据
[db beginTransaction];
for(int i=; i< ; i++)
{
[db executeUpdate:@"insert into persons values(?,?)", [NSString stringWithFormat:@"%d", i], [NSString stringWithFormat:@"第%d", i]];
}
[db commit]; //数据查询
FMResultSet *cursor = [db executeQuery:@"select * from persons"];
int nCols = cursor.columnCount;
while ([cursor next]) {
for (int i=; i<nCols; i++) {
printf("%s ", [[cursor stringForColumnIndex:i] UTF8String]);
}
printf("\n");
}
cursor = nil; //关闭数据库
[db close]; //删除数据库测试文件
[[NSFileManager defaultManager] removeItemAtPath:dbfile error:nil]; } BOOL isfile(NSString *path)
{
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL isdir = NO;
if ([fileManager fileExistsAtPath:path isDirectory: &isdir]) {
return isdir == NO;
}
return NO;
} BOOL isdir(NSString *path)
{
NSFileManager *fileManager = [NSFileManager defaultManager];
BOOL isdir = NO;
if ([fileManager fileExistsAtPath:path isDirectory: &isdir]) {
return isdir == YES;
}
return NO;
}

最新文章

  1. LeetCode 2. Add Two Numbers swift
  2. [ruby on rails] 跟我学之(2)HelloWorld
  3. unity, 查看.anim中的动画曲线(和帧)
  4. (转载)Android开发者必知的开发资源
  5. python执行shell获取硬件参数写入mysql
  6. DQL
  7. 排列-条件求和(Code)
  8. 水流(water)
  9. 创建 vxlan 并部署 instance - 每天5分钟玩转 OpenStack(147)
  10. linux命令学习汇总
  11. Java设计模式总结
  12. JavaScript中的constructor和继承
  13. Excel分组快速自动填充编号
  14. java-普通类文件@Autowired自动注入为null
  15. CPP_const&amp;static
  16. Jenkins构建报错(Jenkins is reserved for jobs with matching label expression)解决办法
  17. 【Java】 int与String类型间的相互转化
  18. Spark Shuffle之Hash Shuffle
  19. 【Python】python 反射机制在实际的应用场景讲解
  20. [转]什么是VUE?为什么用VUE?

热门文章

  1. SAP财务凭证冲销
  2. eclipse中使用tomcat图解
  3. Jakarta-Commons- BeanUtils学习笔记:
  4. 【转】Android 快捷方式的创建
  5. C# winform如何在textbox中判断输入的是字母还是数字?
  6. EasyUI-增删改操作
  7. 懂,你的App生,不懂,死!
  8. Cocos2d的特性
  9. C#随机函数random()典型用法集锦
  10. Linux网络相关命令小结