使用fmdb 做本地数据的存储非常方便,

1. github 上搜索fmdb 下载压缩包 导入到工程中 (如果你的mac 有cocoapod 也可以直接通过cocoapod 添加)

2. 以下代码是通过fmdb 多数据库的各种操作,其中有几点需要注意:(1). 程序中 Ceasar 是表名   (2). 修改数据库数据  提前准备字符串时 值 要用单引号括起来 否则会出错 : NSString *temp = [NSString stringWithFormat:@"UPDATE %@ SET %@ = '%@' WHERE %@ = '%@'",@"Ceasar",@"Name",@"hao",@"Age",[NSNumber numberWithInt:100]];

    NSString *path = @"/Users/shijieli/Desktop/test.sqlite";

FMDatabase *db = [FMDatabase databaseWithPath:path];

if ([db open]) {//创建表

BOOL res = [db executeUpdate:@"CREATE TABLE IF NOT EXISTS Ceasar (Name text, Age integer, Photo blob)"];

if (!res) {

NSLog(@"error when creating db table");

} else {

NSLog(@"success to creating db table");

}

[db close];

}

if ([db open]) {//添加数据

BOOL res = [db executeUpdate:@"INSERT INTO Ceasar (Name, Age, Photo) VALUES (?, ?, ?)",@"Gaius",[NSNumber numberWithInteger:100],[NSData dataWithContentsOfFile:@"/Users/shijieli/Desktop/testPicture.jpg"]];

if (res) {

NSLog(@"success to insert db table");

} else {

NSLog(@"error when insert db table");

}

[db close];

}

if ([db open]) {//查询

FMResultSet * rs = [db executeQuery:@"SELECT * FROM Ceasar"];

while ([rs next]) {

NSString * name = [rs stringForColumn:@"Name"];

int age = [rs intForColumn:@"Age"];

NSData *photo = [rs dataForColumn:@"Photo"];

NSLog(@" name = %@, age = %d",  name, age);

BOOL isCreate = [[NSFileManager defaultManager] createFileAtPath:@"/Users/shijieli/Desktop/car.jpg" contents:photo attributes:nil];

if (!isCreate) {

NSLog(@" ****** create failure");

}

}

[db close];

}

//        if ([db open]) {//修改数据

//            NSString *temp = [NSString stringWithFormat:@"UPDATE %@ SET %@ = '%@' WHERE %@ = '%@'",@"Ceasar",@"Name",@"hao",@"Age",[NSNumber numberWithInt:100]];

//            BOOL res = [db executeUpdate:temp];

//            if (!res) {

//                NSLog(@"error when update db table");

//            } else {

//                NSLog(@"success to update db table");

//            }

//

//            [db close];

//

//        }

//        if ([db open]) {//清除表

//            BOOL res = [db executeUpdate:@"DELETE FROM Ceasar"];

//            if (!res) {

//                NSLog(@"delete failure");

//            }

//        }

if ([db open]) {//删除数据

NSString *deleteSql = [NSString stringWithFormat:

@"delete from %@ where %@ = '%@'",

@"Ceasar", @"Name", @"hao"];

BOOL res = [db executeUpdate:deleteSql];

if (!res) {

NSLog(@"error when delete db table");

} else {

NSLog(@"success to delete db table");

}

[db close];

}

}

iOS 三方库fmdb 的使用的更多相关文章

  1. iOS:iOS开发非常全的三方库、插件等等

    iOS开发非常全的三方库.插件等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自git ...

  2. QF——iOS中的数据库操作:SQLite数据库,第三方封装库FMDB,CoreData

    SQLite数据库: SQLite是轻量级的数据库,适合应用在移动设备和小型设备上,它的优点是轻量,可移植性强.但它的缺点是它的API是用C写的,不是面向对象的.整体来说,操作起来比较麻烦.所以,一般 ...

  3. 2018 6年iOS开发常用的三方库

    开发一般APP必备三方库,省力秘籍!!!本篇文章会经常更新最新常用的三方. 1.网络请求库 AFNetworking https://github.com/AFNetworking/AFNetwork ...

  4. iOS的非常全的三方库,插件,大牛博客

    转自: http://www.cnblogs.com/zyjzyj/p/6015625.html github排名:https://github.com/trending, github搜索:http ...

  5. IOS数据持久化存储之SQLite3第三方库FMDB的使用

    SQLite是一种小型的轻量级的关系型数据库,在移动设备上使用是非常好的选择,无论是Android还是IOS,都内置了SQLite数据库,现在的版本都是SQLite3.在IOS中使用SQLite如果使 ...

  6. iOS开发 非常全的三方库、插件、大牛博客等等

    UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableVie ...

  7. iOS - .a静态库的打包(包括打包的文件中用到了一些别人的三方库和分类的处理)

    一.概念篇 什么是库? 库是程序代码的集合,是共享程序代码的一种方式 根据源代码的公开情况,库可以分为2种类型 开源库 公开源代码,能看到具体实现 比如SDWebImage.AFNetworking ...

  8. Objective-C ,ios,iphone开发基础:使用第三方库FMDB连接sqlite3 数据库,实现简单的登录

    第一步:下载第三方库,点击 连接 下载, 第二部:准备数据库:按照连接&中博客的步骤实现数据库, 数据库的设计大致如下表: id        username             pas ...

  9. iOS:二叉树多级表格的使用,使用三方库TreeTableView-master实现对json解析数据的递归遍历整理成树状结构

    在项目中,我们有时需要使用二叉树来实现多级表格的递归遍历查询,如果对二叉树比较懂,那么写起来其实也不费事,为了节省开发时间,下面介绍一下第三方库TreeTableView-master,这个三方库上给 ...

随机推荐

  1. 【Java基础】创建和销毁对象

    Num1:考虑用静态工厂方法代替构造器 对于类而言,常见的方法是提供一个公有的构造器,但其实还有一种方法叫做静态工厂方法(static factory method),它只是一个返回类的实例静态方法. ...

  2. 利用ListView的基本方法实现效果

    日常的开发工作经常需要ListView作为布局的组件,而且很多时候都会遇到需要自定义ListView的情况. 也有些问题并不需要自定义的ListView,基于原生的ListView就能实现,但需要灵活 ...

  3. 基于HTML5的3D网络拓扑树呈现

    在HT for Web中2D和3D应用都支持树状结构数据的展示,展现效果各异,2D上的树状结构在展现层级关系明显,但是如果数据量大的话,看起来就没那么直观,找到指定的节点比较困难,而3D上的树状结构在 ...

  4. vue data对象添加新属性触发视图

    <template> <div class="wrap open"> <a>{{test01.name}}</a> <a> ...

  5. LeetCode - 54. Spiral Matrix

    54. Spiral Matrix Problem's Link ------------------------------------------------------------------- ...

  6. C#开源

    商业协作和项目管理平台-TeamLab 网络视频会议软件-VMukti 驰骋工作流程引擎-ccflow [免费]正则表达式测试工具-Regex-Tester Windows-Phone-7-SDK E ...

  7. MySqlHelper、CacheHelper

    MySqlHelper代码: using System; using System.Collections; using System.Collections.Generic; using Syste ...

  8. 自己写的一个简单的jQuery提示插件

    代码: /** * 2014年11月13日 * 提示插件 */ (function ($) { $.fn.tips = function (text) { var divtipsstyle = &qu ...

  9. .net获取本机公网IP代码

    类的代码如下: using System; using System.Net; using System.Text.RegularExpressions; namespace Keleyi.Com { ...

  10. 【SQL】SQL2012离线帮助文档安装不上的处理手记

    注:解决方法在最后,心急的童鞋可以直接往下滚动. 我SQL实例装的是2008 R2版,由于该版自带的SSMS(Microsoft SQL Server Management Studio 管理工具)存 ...