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