fmdb 数据库的基本操作
/**
* 创建表
*/
- (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 数据库的基本操作的更多相关文章
- FMDB 数据库
iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便.于是,就出现了一系列将SQLite API进行封装的库,例如FMDB.PlausibleDatabase.sqlitepers ...
- mysql数据库的基本操作
mysql数据库的基本操作dos命令启动mysql服务:net start mysql启动数据库: mysql -uroot -p查看所有的数据库:show databases:新建数据库:creat ...
- MySQL(一) 数据表数据库的基本操作
序言 这类文章,记录我看<MySQL5.6从零开始学>这本书的过程,将自己觉得重要的东西记录一下,并有可能帮助到你们,在写的博文前几篇度会非常基础,只要动手敲,跟着我写的例子全部实现一遍, ...
- iOS开发数据库篇—FMDB数据库队列
iOS开发数据库篇—FMDB数据库队列 一.代码示例 1.需要先导入FMDB框架和头文件,由于该框架依赖于libsqlite库,所以还应该导入该库. 2.代码如下: // // YYViewContr ...
- Swift使用单个案件管理FMDB数据库
下班... 抢 我曾经Swift使用单一个案管理FMDB数据库的方法共享出来: // Created by 秦志伟 on 14-6-12. import UIKit class ZWDBManager ...
- PostgreSQL自学笔记:3 数据库的基本操作
3 数据库的基本操作 3.1 创建数据库 3.1.1 使用对象浏览器创建数据库 [Server] -> PostgreSQL 9.6 -> 数据库,右击 -> 创建 通常: 数据库: ...
- ThinkPhp框架对“数据库”的基本操作
框架有时会用到数据库的内容,在"ThinkPhp框架知识"的那篇随笔中提到过,现在这篇随笔详细的描述下. 数据库的操作,无疑就是连接数据库,然后对数据库中的表进行各种查询,然后就是 ...
- mysql 数据库(二)数据库的基本操作
mysql 数据库(二)数据库的基本操作 用户管理,添加权限,创建,显示,使用数据库 1 显示数据库:show databases; 默认数据库: mysql - 用户权限相关数据 test - 用于 ...
- MySQL:数据库的基本操作
第二篇.数据库的基本操作 一.创建数据库 附:创建数据库并不意味输入数据在这个数据库中,只有用切换数据库才可以输数据到这个数据库中. 1.创建数据库 格式:create database数据库名字 [ ...
随机推荐
- Create Volume 操作(Part III) - 每天5分钟玩转 OpenStack(52)
本节是创建 Volume 的第三部分,也是最后一部分:cinder-volume 的处理过程. 第一部分和第二部分可以参考前面两个小节.cinder-volume 通过 driver 创建 volum ...
- Oracle OCP 1Z0-053 Exam Topics
根据OU官方发布的考试大纲,OCP 1Z0-053考点如下: 1. Database Architecture and ASM Describe Automatic Storage Managemen ...
- SQL SERVER 通用分页存储过程,两种用法任你选
写在前面 从SQLSERVER 2005开始,提供了Row_Number()函数,利用函数生成的Index来处理分页,按照正常的逻辑思维都是传pageIndex和pageSize来完成分页,昨天前端和 ...
- c++中的重名问题
看C++视频教程-范磊主讲(2.91G)视频学习笔记整理. 1.c++为什么要引入名字空间(namespace)? c++引入名字空间这个概念,是为了避免重名问题,比如说避免重复的函数名或者变量名引起 ...
- 常见的几个meta标签元素
1.指定字符集: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/& ...
- 浅谈MITM攻击之信息窃取(解密315晚会报道的免费WIFI窃取个人信息)
前言 所谓的MITM攻击(即中间人攻击),简而言之就是第三者通过拦截正常的网络通信数据,并进行数据篡改和嗅探,而通信的双方毫无感知.这个很早就成为黑客常用的手段,一会聊的315晚会窃取个人信息只是 ...
- Windows 10 版本 1507 中的新 AppLocker 功能
要查看 Windows 10 版本信息,使用[运行]> dxdiag 回车 下表包含 Windows 10 的初始版本(版本 1507)中包括的一些新的和更新的功能以及对版本 1511 的 W ...
- 基于jQuery的自适应图片左右切换
效果预览:http://hovertree.com/code/jquery/smjv6d0n.htm 基于jQuery编写的横向自适应幻灯片切换特效 全屏自适应jquery焦点图切换特效,在IE6这个 ...
- WPF模板
WPF的中模板有三种:ControlTemplate.ItemsPanelTemplate.DataTemplate,他们继承抽象类FrameworkTemplate,下面是它们的继承关系: Wind ...
- poj1113--凸包(Andrew)
题目大意: 给出平面上若干个点的坐标,你的任务是建一个环形围墙,把所有的点围在里面,且距所有点的距离不小于l.求围墙的最小长度. 思路: 很容易得出答案就是凸包周长+以l为半径的圆的周长. 这里讲一下 ...