IOS开发——使用FMDB数据库

简介

需求作用:

如果需要保存大量的结构较为复杂的数据的时候,使用数据库,例如交规考试项目

1、数据库的基本介绍

数据库(DB)是一种数据模型组织起来并存放存储管理的数据仓库。它是由文件管理发展起来的,如今的数据库基本上都是关系型数据库。

数据库的基本操作是增、删、查、改。

常见的几种数据库,Oracle,Access,SQL Server,DB2,Mysql

手机上使用的数据库为SQLite,因为它占用资源很好,易于配置等原因。

2、mesaSQLite 使用

实例: 使用数据存储存储一个班上学生的信息

学号:sid 用户名:username 密码:password 成绩:score 1501 zhangs 123 100 1502 heihei 321 90

(1)创建数据库

可以直接在菜单栏中选中new database 创建出一个新的数据库。

(2)创建数据表

数据表的创建方式比较多一点,可以在structure中点击+号进行创建。然

在SQL Query中输入创建语句 create table  tablename(id 类型,name 类型) (直接在下方的输入框中输入)

(3)SQL结构化查询语句

首先必须要有数据,加入数据的操作为insert  into tablename (id,name) values (11,'zhang')

  1. 查找所有 :select * from tablename
  2. 查找单个属性:select name from tablename
  3. 查找多个属性 :select id ,name from tablename
  4. 按一定条件查找:select id from tablename where id =XX
  5. 按多个条件查找:select id from tablename where id =XX and name = XX
  6. 条件中含有特定字符串的查找:select id from tablename where name like '%XX%'

(4)简单的where条件

  1. = 等于
  2. > 大于
  3. < 小于
  4. >= 大于等于
  5. <= 小于等于
  6. <> 不等于
  7. !> 不大于
  8. %匹配的字符串% 匹配字符串

3、在IOS开发中使用FMDB

FMDB 是一个开源的第三方框架。

FMDatabase -表示一个单独的数据库,用来执行SQLite的命令。

FMResultSet -表示FMDatabase执行之后,返回的结果集。

FMDatabaseQuere-是在多线程的时候,使用这个类。

(1)导入FMDB

直接加载到项目中,并加上sqlite3.dylib的二进制库(查找sqlite)。

在需要的文件中,加上头文件 #import "FMDatabase.h"

(2)创建并打开数据库

 NSString *path = [[NSBundle mainBundle ] pathForResource:@"data.sqlite" ofType:nil];
_database = [[FMDatabase alloc] initWithPath:path];
if (!_database.open) {
NSLog(@"打开失败");
}else{
NSLog(@"成功");
}

(3)查询操作,并得到返回集

  NSString *sql = @"select * from firstlevel";
FMResultSet *resultset = [_database executeQuery:sql]; NSMutableArray *mArray = [[NSMutableArray alloc] init]; while ([resultset next]) {
Model *model = [[Model alloc] init];
model.id = [resultset stringForColumn:@"id"];
model.name = [resultset stringForColumn:@"name"];
[mArray addObject:model];
}

结语:天天加油。。。。。。

IOS开发——使用数据库的更多相关文章

  1. IOS开发-封装数据库sqlite3之为何选择FMDB

    为什么使用第三方轻量级框架FMDB? FMDB是用于进行数据存储的第三方的框架,它与SQLite与Core Data相比较,存在很多优势. FMDB是面向对象的,它以OC的方式封装了SQLite的C语 ...

  2. iOS开发-Realm数据库

    Realm Realm-Object-c,见:https://realm.io/cn/docs/objc/latest/Realm官网:https://realm.io 使用流程 导入头文件#impo ...

  3. iOS开发数据库篇—SQLite简单介绍

    iOS开发数据库篇—SQLite简单介绍 一.离线缓存 在项目开发中,通常都需要对数据进行离线缓存的处理,如新闻数据的离线缓存等. 说明:离线缓存一般都是把数据保存到项目的沙盒中.有以下几种方式 (1 ...

  4. iOS开发数据库篇—SQL

    iOS开发数据库篇—SQL 一.SQL语句 如果要在程序运行过程中操作数据库中的数据,那得先学会使用SQL语句 1.什么是SQL SQL(structured query language):结构化查 ...

  5. iOS开发数据库篇—SQL代码应用示例

    iOS开发数据库篇—SQL代码应用示例 一.使用代码的方式批量添加(导入)数据到数据库中 1.执行SQL语句在数据库中添加一条信息 插入一条数据的sql语句: 点击run执行语句之后,刷新数据 2.在 ...

  6. iOS开发数据库篇—SQLite的应用

    iOS开发数据库篇—SQLite的应用 一.简单说明 在iOS中使用SQLite3,首先要添加库文件libsqlite3.dylib和导入主头文件. 导入头文件,可以使用库中的函数(是纯C语言的) 二 ...

  7. IOS开发数据库篇—SQLite模糊查询

    IOS开发数据库篇—SQLite模糊查询 一.示例 说明:本文简单示例了SQLite的模糊查询 1.新建一个继承自NSObject的模型 该类中的代码: // // YYPerson.h // 03- ...

  8. iOS开发数据库篇—SQLite常用的函数

    iOS开发数据库篇—SQLite常用的函数 一.简单说明 1.打开数据库 int sqlite3_open( const char *filename,   // 数据库的文件路径 sqlite3 * ...

  9. iOS开发数据库篇—FMDB简单介绍

    iOS开发数据库篇—FMDB简单介绍 一.简单说明 1.什么是FMDB FMDB是iOS平台的SQLite数据库框架 FMDB以OC的方式封装了SQLite的C语言API 2.FMDB的优点 使用起来 ...

随机推荐

  1. 【经验记录】Jconsole Jvisualvm 监控Tomcat

    环境:centos 6 1.首先检查hostname是否正确,输入以下命令 hostname -i 如果输出机器ip,则表示正确,如果输出 hostname: Unknown host 查看/etc/ ...

  2. Android开发学习---如何写数据到外部存储设备(sd卡),Environment.getExternalStorageDirectory,怎么获取sd卡的大小?

    本文主要介绍如何写数据到sd卡,这里主要到的技术是Environment中的方法. 1. 2.实现代码: /datasave/src/com/amos/datasave/savePasswordSer ...

  3. 使用yield关键字让自定义集合实现foreach遍历

    一般来说当我们创建自定义集合的时候为了让其能支持foreach遍历,就只能让其实现IEnumerable接口(可能还要实现IEnumerator接口) 但是我们也可以通过使用yield关键字构建的迭代 ...

  4. 整理分享C#通过user32.dll模拟物理按键操作的代码

    对系统模拟按键方面的知识和按键映射代码做了一下梳理,在这里分享出来,适用于开发自动操作工具和游戏外挂. 主代码: public const int KEYEVENTF_EXTENDEDKEY = 0x ...

  5. Oracle 12c 的新功能:模式匹配查询

    模式匹配SQL 在一系列的数据行中辨识出某种模式是一种广泛需求的功能,但在以前的SQL中是不可能的.有许多解决方法,但这些都很难写,很难理解,而且执行效率低下.在Oracle数据库中,从12c开始,你 ...

  6. 常用邮件服务器名(POP3,SMTP地址)

    POP3服务器地址:pop3.sina.com.cn(端口:110)SMTP服务器地址:smtp.sina.com.cn(端口:25) sina.cn: POP3服务器地址:pop3.sina.com ...

  7. css高级应用及问题记录(持续更新)

    css 参考手册: 1.http://css.doyoe.com/ 1.混合选择器样式定义: .button.icon:before {    content: "";    po ...

  8. Mac下U盘安装系统“未验证的错误”

    bash下 输入下面命令: date 1220141012015.30

  9. 字符串分割函数(New)

    unit Unit1; interface uses  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Form ...

  10. html5 canvas用动画的形式装载图像

    本示例使用HTML5 canvas,简单的编写了装载图片效果, 请使用支持HTML5的浏览器预览效果: 下图为以逐渐横向栅格的效果图 html部分: <!DOCTYPE html> < ...