/**

*  创建表

*/

- (void)createTable

{

//1.初始化数据库对象 并且 2.打开数据库

BOOL isOpenSuccess = [self.database open];

NSLog(@"数据库打开%@",isOpenSuccess?@"成功":@"失败");

//3.创建表

NSString *sql = @"create table if not exists User (id integer primary key autoincrement, name text, age integer, icon blob)";

//执行sql,除了查询外,其他的操作都是更新

BOOL isCreateTableOK = [self.database executeUpdate:sql];

NSLog(@"创建表%@",isCreateTableOK?@"成功":@"失败");

}

//初始化数据库对象

- (FMDatabase *)database

{

if (!_database)

{

_database = [FMDatabase databaseWithPath:[self databasePath]];

}

return _database;

}

/**

*  返回数据库路径

*

*  @return return value description

*/

- (NSString *)databasePath

{

//获取document路径

NSString *docuentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)[0];

return [docuentPath stringByAppendingPathComponent:@"user.db"];

}

/**

*  插入指定数据

*

*  @param user user description

*

*  @return return value description

*/

- (BOOL)insertUserObjectWithUser:(User *)user

{

NSString *sql = @"insert into User (name,age,icon) values (?,?,?)";

//执行插入的sql语句

BOOL isInsertOK = [self.database executeUpdate:sql,user.name,@(user.age),user.iconData];

NSLog(@"插入数据%@",isInsertOK?@"成功":@"失败");

return YES;

}

/**

*  更新数据

*

*  @param user user description

*

*  @return return value description

*/

- (BOOL)updateUserObjectWithUser:(User *)user

{

NSString *sql = [NSString stringWithFormat:@"update user set name='%@',age='%d',icon='%@' where name = '%@'",user.name,user.age,user.iconData,user.name];

BOOL isInsertOK = [self.database executeUpdate:sql];

NSLog(@"==========更新数据%@===========",isInsertOK?@"成功":@"失败");

return YES;

}

/**

*  查询所有的数据

*

*  @return return value description

*/

- (NSArray *)queryAllUserObjectsFromDatabase

{

//保存所有的用户信息

NSMutableArray *users = [NSMutableArray array];

NSString *sql = @"select * from User";

//执行查询

FMResultSet *result = [self.database executeQuery:sql];

//遍历

while (result.next)

{

User *user = [[User alloc] init];

//取值

//根据字段名字取值

user.iconData = [result dataForColumn:@"icon"];

user.name = [result stringForColumn:@"name"];

user.age = [result intForColumn:@"age"];

[users addObject:user];

}

return users;

}

fmdb 数据库的基本操作的更多相关文章

  1. FMDB 数据库

    iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...

  2. mysql数据库的基本操作

    mysql数据库的基本操作dos命令启动mysql服务:net start mysql启动数据库: mysql -uroot -p查看所有的数据库:show databases:新建数据库:creat ...

  3. MySQL(一) 数据表数据库的基本操作

    序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...

  4. iOS开发数据库篇—FMDB数据库队列

    iOS开发数据库篇—FMDB数据库队列 一.代码示例 1.需要先导入FMDB框架和头文件,由于该框架依赖于libsqlite库,所以还应该导入该库. 2.代码如下: // // YYViewContr ...

  5. Swift使用单个案件管理FMDB数据库

    下班... 抢 我曾经Swift使用单一个案管理FMDB数据库的方法共享出来: // Created by 秦志伟 on 14-6-12. import UIKit class ZWDBManager ...

  6. PostgreSQL自学笔记:3 数据库的基本操作

    3 数据库的基本操作 3.1 创建数据库 3.1.1 使用对象浏览器创建数据库 [Server] -> PostgreSQL 9.6 -> 数据库,右击 -> 创建 通常: 数据库: ...

  7. ThinkPhp框架对“数据库”的基本操作

    框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是 ...

  8. mysql 数据库(二)数据库的基本操作

    mysql 数据库(二)数据库的基本操作 用户管理,添加权限,创建,显示,使用数据库 1 显示数据库:show databases; 默认数据库: mysql - 用户权限相关数据 test - 用于 ...

  9. MySQL:数据库的基本操作

    第二篇.数据库的基本操作 一.创建数据库 附:创建数据库并不意味输入数据在这个数据库中,只有用切换数据库才可以输数据到这个数据库中. 1.创建数据库 格式:create database数据库名字 [ ...

随机推荐

  1. 解决Select2控件不能在jQuery UI Dialog中不能搜索的bug

    本文使用博客园Markdown编辑器进行编辑 1.问题呈现 项目中使用了jQuery UI的Dialog控件,一般用来处理需要提示用户输入或操作的简单页面.逻辑是修改一个广告的图片和标题. 效果截图如 ...

  2. easyui-datagrid 列单击事件

    首先要注意的就是,先添加一个js方法,名字可以自定义,但是必须得与下面的option里面的onClickRow:后面的一致即可      <script type="text/java ...

  3. (转)使用minicpan创建本地CPAN

    在临时的办公场所网络不畅,有时不能下载cpan上的软件包,所有只能自建一个cpan. 这里使用了工具'minicpan',简单地说:就是把互联网上的CPAN搬到自己的电脑里,它的最初想法来自Randa ...

  4. Java内存模型深度解析:volatile--转

    原文地址:http://www.codeceo.com/article/java-memory-4.html Volatile的特性 当我们声明共享变量为volatile后,对这个变量的读/写将会很特 ...

  5. 如何使用免费PDF控件从PDF文档中提取文本和图片

             如何使用免费PDF控件从PDF文档中提取文本和图片 概要 现在手头的项目有一个需求是从PDF文档中提取文本和图片,我以前也使用过像iTextSharp, PDFBox 这些免费的PD ...

  6. 自定义从Azure下载回来的远程桌面连接(.rdp)文件,使其提供更多丰富功能

    通常情况下,我们使用Azure的时候微软会为用户提供可连接管理虚拟机的远程桌面服务,并且支持文件实例的保存,对于Windows 系统来说,微软提供的链接文件实例就是.rdp文件. 获得.rdp文件 打 ...

  7. JQuery中使用Ajax实现诸如登录名检测等异步请求Demo

    上一篇博客介绍了注册登录时一次性图形验证码的工具类的编写,这篇随笔同样是我在写用jquery中ajax实现登录信息检测的异步请求功能的笔记,在各个网站进行信息用户注册时,需要在不刷新页面的情况下对注册 ...

  8. Maven工程引入jar包

    Maven项目引入jar包的方法 法一.手动导入:项目右键—>Build Path—>Configure Build Path—>选中Libraries—>点击Add Exte ...

  9. dsoframer 使用笔记

    dsoframer是微软提供一款开源的用于在线编辑.调用Word.Excel.PowerPoint等的ActiveX控件. 1.层覆盖 如果需要在文档编辑区域上方覆盖一个div的话,z-index无效 ...

  10. 使用Jquery的Ajax实现无刷新更新,修改,删除页面

    本文将向大家讲述一下最近工作的一些总结,主要包括了以下内容,注册界面以及详细信息界面的编辑.主要是介绍了AJAX技术,因为我觉得其他方面没什么好介绍的.首先是跟大家说一下Ajax的优点,假如你删除了一 ...