iOS: 学习笔记, 使用FMDatabase操作sqlite3
使用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;
- }
iOS: 学习笔记, 使用FMDatabase操作sqlite3的更多相关文章
- IOS学习笔记25—HTTP操作之ASIHTTPRequest
IOS学习笔记25—HTTP操作之ASIHTTPRequest 分类: iOS2012-08-12 10:04 7734人阅读 评论(3) 收藏 举报 iosios5网络wrapper框架新浪微博 A ...
- IOS学习笔记25—HTTP操作之ASIHTTPRequest(一)
ASIHTTPRequest是一个第三方开源项目,在现在的IOS应用中多使用到这个开源类库来提供网络操作,相比于SDK提供的网络操作类库,ASIHTTPRequest使用上更加方便.效率更高,同时功能 ...
- IOS学习笔记48--一些常见的IOS知识点+面试题
IOS学习笔记48--一些常见的IOS知识点+面试题 1.堆和栈什么区别? 答:管理方式:对于栈来讲,是由编译器自动管理,无需我们手工控制:对于堆来说,释放工作由程序员控制,容易产生memor ...
- iOS学习笔记17-FMDB
上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...
- iOS学习笔记16-数据库SQLite
一.数据库 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等.离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式: 归档:NSKeyedArchiver 偏好设置:NSU ...
- iOS学习笔记17-FMDB你好!
上一节我已经介绍了SQLite的简单使用,不了解的可以提前去看一下iOS学习笔记16-数据库SQLite,这节我们来讲下FMDB. 一.FMDB介绍 FMDB是一种第三方的开源库,FMDB就是对SQL ...
- iOS学习笔记-精华整理
iOS学习笔记总结整理 一.内存管理情况 1- autorelease,当用户的代码在持续运行时,自动释放池是不会被销毁的,这段时间内用户可以安全地使用自动释放的对象.当用户的代码运行告一段 落,开始 ...
- iOS学习笔记总结整理
来源:http://mobile.51cto.com/iphone-386851_all.htm 学习IOS开发这对于一个初学者来说,是一件非常挠头的事情.其实学习IOS开发无外乎平时的积累与总结.下 ...
- IOS学习笔记(四)之UITextField和UITextView控件学习
IOS学习笔记(四)之UITextField和UITextView控件学习(博客地址:http://blog.csdn.net/developer_jiangqq) Author:hmjiangqq ...
随机推荐
- NIO组件Selector工作机制详解(下)
转自:http://blog.csdn.net/haoel/article/details/2224069 五. 迷惑不解 : 为什么要自己消耗资源? 令人不解的是为什么我们的Java的New I/ ...
- Making the Elephant Dance: Strategic Enterprise Analysis
http://www.modernanalyst.com/Resources/Articles/tabid/115/ID/2934/categoryId/23/Making-the-Elephant- ...
- NSLayoutConstraint-代码实现自己主动布局的函数使用方法说明
[NSLayoutConstraint constraintWithItem:view1 attribute:NSLayoutAttributeLeft relatedBy:NSLayoutRelat ...
- Eclipse快捷键调试
Eclipse中有如下一些和运行调试相关的快捷键Ctrl+Shift+B:在当前行设置断点或取消设置的断点 F11:调试最后一次执行的程序 Ctrl+F11:运行最后一次执行的程序F5:跟踪到 ...
- [D3] 7. Quantitative Scales
# Quantitative Scales var colorScale = d3.scale.quantile() .domain([d3.max(dataset) / 4, d3.max(data ...
- Android 解决双卡双待手机解析短信异常
开发中,难免会遇到各种各样的适配问题,尤其是经过深度修改定制过的系统,有的无论是软硬件上都有很大的区别,这里不得不提到一种奇葩的机型,没错,那就是双卡双待的手机(比如XT800, A60, S8600 ...
- How to manage and balance “Huge Data Load” for Big Kafka Clusters---reference
1. Add Partition Tool Partitions act as unit of parallelism. Messages of a single topic are distribu ...
- spring beans源码解读之--bean definiton解析器
spring提供了有两种方式的bean definition解析器:PropertiesBeanDefinitionReader和XmLBeanDefinitionReader即属性文件格式的bean ...
- 软件版本中的Alpha,Beta,RC,Trial是什么意思?
版本号: V(Version):即版本,通常用数字表示版本号.(如:EVEREST Ultimate v4.20.1188 Beta ) Build:用数字或日期标示版本号的一种方式.(如:VeryC ...
- WebService学习笔记系列(一)
webservice主要是解决两个系统或者两个应用程序之间的远程调用,它提供了一种通过web方式访问的api,调用是跨语言.跨平台的. webservice的客户端与服务端进行交互的时候使用xml来传 ...