文档章节

iOS 数据库FMDN 数据库的增 删 改 查 的 的基本操作

YunHe_Lee
 YunHe_Lee
发布于 2015/06/17 11:45
字数 495
阅读 13
收藏 0
点赞 0
评论 0

FMDB的下载地址 (https://github.com/ccgus/fmdb) 话不多说首先将这个 库加进来,在将加进来,OK  准备工作就绪上代码。

#import "DDViewController.h"

#import "FMDB.h"


@interface DDViewController ()

{

    FMDatabase *db;

}


@end


@implementation DDViewController

/**

 *  要先做要有个位置去存放数据库  iosDocument路径,Documentios中可读写的文件夹并且要创建一个数据库的列表

 */

- (void)viewDidLoad

{

    [super viewDidLoad];

//    db = [FMDatabase new];

    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);

    NSString *documentDirectory = [paths objectAtIndex:0];

    //dbPath 数据库路径,在Document中。

    NSString *dbPath = [documentDirectory stringByAppendingPathComponent:@"Test.db"];

    //创建数据库实例 db  这里说明下:如果路径中不存在"Test.db"的文件,sqlite会自动创建"Test.db"

    db= [FMDatabase databaseWithPath:dbPath] ;

    if (![db open]) {

        NSLog(@"Could not open db.");

        return ;

    }

    //为数据库设置缓存,提高查询效率

    [db setShouldCacheStatements:YES];

// 1.创建一个表 表的名字 User

    [self creatTable];

    //2.向表中添加数据

    [self insertData:@"草帽" age:23];

    //3.查看结果

    [self ResultSet];


}

//创建一个表

-(void)creatTable

{

//创建表的时候 最好判断下自己的之前的工作有么有做好

    if (!db) {

        NSLog(@"数据库不存在");

    }

    if (![db open]) {

        [db open];

    }

    //判断是否存在这张名字为User的表 如果没有 创建

    if (![db tableExists:@"User"]) {

        //创建一个名为User的表,有两个字段分别为string类型的Nameinteger类型的 Age

        [db executeUpdate:@"CREATE TABLE User (Name text,Age integer)"];

//        [self insertData:@"草帽" age:24];


    }

}

//插入数据

-(void)insertData:(NSString *)name age:(int)age

{

    //插入数据使用OC中的类型 text对应为NSString integer对应为int的整型

    [db executeUpdate:@"INSERT INTO User (Name,Age) VALUES (?,?)",name,[NSNumber numberWithInt:age]];


}

//查询结果

-(void)ResultSet

{

    //返回数据库中第一条满足条件的结果

    NSString *aa=[db stringForQuery:@"SELECT Name FROM User WHERE Age = ?",@"20"];

    NSLog(@"aa is %@",aa);

    

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

//    rs=[db executeQuery:@"SELECT * FROM User WHERE Age = ?",@"23"];

    while ([rs next]){

        NSLog(@"%@ %@",[rs stringForColumn:@"Name"],[rs stringForColumn:@"Age"]);

    }

    [rs close];


}

//修改表内容

-(void)Modify

{

    [db executeUpdate:@"UPDATE User SET Name = ? WHERE Name = ? ",@"李四",@"张三"];

}

- (void)didReceiveMemoryWarning


{

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}


@end


© 著作权归作者所有

共有 人打赏支持
YunHe_Lee
粉丝 0
博文 8
码字总数 4263
作品 0
朝阳
IOS用sqlite的原生代码操作数据库详解 总和两个网页的讲解

ios Sqlite数据库增删改查基本操作 第一个讲解网页的内容 研究了几天的数据库,终于把它给搞出来了。Sqlite是ios上最常用的数据库之一,大家还是有必要了解一下的。这是仿照网上的一个例子做...

HillYoung
2014/02/14
0
0
[快速学会Swift第三方库] SQLite.swift篇

SQLite.swift 是一个使用纯 Swift 语言封装 SQLite3 的操作框架。 特性: 目录 [快速学会Swift第三方库 SQLiteswift篇] 编码之前 导入SQLite.swift 推荐使用CocoaPods进行导入,CocoaPods是一...

远0
07/11
0
0
iOS平台强大Sqlite操作引擎开源库

前言 首先写这篇文章之前自我介绍一下,我叫吴海超(WHC)在iOS领域有丰富的开发架构经验Github以后我也会以文章的形式分享具有实战意义的文章给大家,希望能够给大家有所帮助。 主题 这期我想...

WHC
2017/03/07
0
0
基于 ORM 的 FMDB 封装使用

PPDataBase 将 FMDB 一些基本数据操作做了封装,基于线程安全。 适用于不是特别复杂的数据库处理 功能接口 数据的增删改查,表删除 批量数据插入,删除,开启事务 数据条件查询,支持自定义 ...

PetitBread
07/09
0
0
使用UniDAC在Delphi XE4中开发iOS应用

使用UniDAC在Delphi XE4中开发iOS应用   核心提示:Delphi XE4的发布让很多Delphi开发者欣喜若狂,毫无疑问它使得Delphi开发更简单且更容易被理解,而且让开发无论是iPhone、iPad还是iPod的...

vga
2014/06/01
0
0
谈谈怎么最快学好iOS开发(个人看法)

由于iphone手机带来的手机应用狂潮,现在很多人都希望从事这块的开发。很多初学者可能会问,怎么样才能学好iOS开发,我们要看什么书呢,还是什么视频,其实这些都不是重要的,重要的是,你认...

应用之星
2013/03/13
0
0
苹果私有API检查工具开源项目

iOS-private-api-checker 苹果iOS私有API检查工具 Developer tool to scan iOS apps for private API usage before submitting to Apple https://github.com/hustcc/iOS-private-api-checker......

小薇
2015/11/05
0
0
一样的iOS开发程序员为什么有人4k有人40k?

前言 移动开发真正火起来其实就是最近这几年,iOS 开发技术因为发展也就才这么几年,所以值得做的事情还有很多,这就造成了每年苹果的 WWDC 都会推出一堆新的特性和 API。整体上来说,这对业...

原来是泽镜啊
05/16
0
0
iOS ZipperDown 漏洞来袭,我们该如何应对?

  昨天傍晚盘古实验室负责任的披露了针对 iOS 应用的 ZipperDown 漏洞,并提供了检索、查询受影响应用的平台: zipperdown.com。基于目前公开的信息,该漏洞的影响面比较大,15000 多个应用...

FreeBuf
05/16
0
0
WWDC 2018 What's New in Cocoa Touch

Framework Updates Performance: Scrolling iOS中的Scrolling基本遵循同样的模式:We load content to be displayed into the views and then we're just moving that content around。大多数......

雨_树
07/16
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

rabbitmq学习记录(三)

工作队列:一个生产者,多个消费者,生产者直接将消息发送到rabbitmq的队列之中 默认采用的是轮询分配:即不管消费者处理信息的效率,队列给所有消费者轮流发送一条信息,直至消息发送完毕 ...

人觉非常君
18分钟前
0
0
Java 之 反射

反射,剖析 Java类 中的 各个组成部分,映射成 一个个 Java对象,多用于 框架和组件,写出复用性高的通用程序。 测试类代码如下: class Person { private String name; public St...

绝世武神
21分钟前
0
0
华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大

华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大!华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大! 在华为最新发布的nova 3手机上,抖音通过华为himedia SDK集成了60fps、超级...

华为终端开放实验室
27分钟前
0
0
多 SSH Key 实现同一台服务器部署多 Git 仓库

本文以以下需求为背景,介绍详细的做法: 需在同一台服务器同时部署两个不同的 Github 仓库(对 Bitbucket 等 git 服务同样适用) root 用户可在远程登录 SSH 后附上预期的 SSH Key 进行 gi...

yeahlife
29分钟前
0
0
003. es6数值的扩展

一、普通扩展 Number 方法,将字符串、数值转为十进制 : Number('0b111') Number.isFinite() 用来检查一个数值是否为有限的:Number.isFinite(15) Number.isNan() 用来检查一个值是否为NaN N...

秋季长青
43分钟前
0
0
C语言数组和指针的语法糖

对于C语言,我可以这样秀:比如当创建一个数组arr[n]之后,一般我们去遍历数组的时候是for (int i = 0; i < n; i++) { a[i]; }但是我知道下表访问符[]是个语法糖,也就是说a[i]在编译器看来是...

ustbgaofan
52分钟前
0
0
Call to undefined function bcmath()的解决方法

乐意黎的ECS主机环境,Centos7.2 + PHP7 由于使用了bcdiv()函数,运行时总在抛错。 Fatal error: Call to undefined function bcmath() in /usr/loca/apache/htdocs/... on line 4 一查得知:......

dragon_tech
57分钟前
0
0
css优先级

..

architect刘源源
今天
0
0
【转】Twitter的分布式自增ID算法snowflake

结构 snowflake的结构如下(每部分用-分开): 0 - 0000000000 0000000000 0000000000 0000000000 0 - 00000 - 00000 - 000000000000 第一位为未使用,接下来的41位为毫秒级时间(41位的长度可以...

talen
今天
0
0
hive支持行级修改

Hive从0.14版本开始支持事务和行级更新,但缺省是不支持的,需要一些附加的配置。要想支持行级insert、update、delete,需要配置Hive支持事务。 一、Hive具有ACID语义事务的使用场景 1. 流式...

hblt-j
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部