IOS开发——使用数据库

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];
}

 

 

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

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。