星空网 > 软件开发 > 操作系统

iOS开发之数据库FMDB

iOS开发之数据库FMDB

  1.简介

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

常用的数据库:

  (1)Microsoft SQL Server 2000/2008, 中小企业使用较多

  (2)Oracle 比较复杂, 大企业使用较多

  (3)Mysql数据库, 网站使用较多

  (4)sqlite:  本地数据库, 访问数据足够快, 直接访问文件

         足够简单, 功能相对其他数据库软件不是特别齐全, 足够用了

          足够小, 系统不超过1M, 适合在移动端上使用

  2. MesaSQlite使用

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

      学号sid  用户名username  密码password 成绩score

      1501    zhangsan      123      100

      1502    lilei         321      90

      1503    wangwu        222      80 

(1)创建数据库 

(2)创建数据表

(3)设计数据表(添加多个字段/列)

(4)数据库常用操作

  增,删,改,查

  3. SQL结构化查询语句

  

SQL, Structure Query Language, 结构化查询语言, 作用就是操作数据库(创建表, 数据增删改查)

(1)创建数据表

create table StudentInfo(sid integer, username varchar(20), password varchar(20),score varchar(20)) create table if not exists StudentInfo(sid integer, username varchar(20), password varchar(20),score varchar(20)) 

(2)插入数据

insert into StudentInfo(sid,username,password,score) values(1503,'wangwu','222','80')

(3)查询数据

<1>查询表格中所有数据   

select * from StudentInfo;

<2>查询指定的字段

实例:  查询所有名字username

select username from StudentInfo

<3>根据指定的条件进行查询

实例: 查找name为zhansan的所有信息

 

select * from StudentInfo where username='zhangsan' 

<4>根据多个条件进行查询

实例: 查找uname为zhansan, 并且性别为boy的所有信息

select * from StudentInfo where username='zhangsan' and password='123'

<5>查询后需要排序

//根据age升序排列select * from StudentInfo order by score //根据age降序排列select * from StudentInfo order by score desc

<6>获取数据行数

select count(*) from StudentInfo 

(4)修改数据

update StudentInfo set score='100' where username='zhangsan';

(5)删除数据

delete from StudentInfo where sid='1503'

  4. FMDB操作数据库

 

(1)配置 

  导入文件,

  添加二进制库 libsqlite3.dylib,

  包含头文件#import "FMDatabase.h"

 

  5. 数据库在项目中使用-单例设计模式

(1)单例的声明与实现

#import <Foundation/Foundation.h>#import "FirstLevelModel.h"#import "SecondLevelModel.h"#import "LeafLevelModel.h"@interface DatabaseManager : NSObject//获取单例对象方法+(id)shareINstance;//获取第一级目录-(NSArray *)firstLevels;//获取第二级目录-(NSArray *)secondLevels:(NSString *)str;//获取第三级目录-(NSArray *)leafLevels:(NSString *)str;@end

#import "DatabaseManager.h"#import "FMDatabase.h"@interface DatabaseManager(){  FMDatabase *_database;}@end@implementation DatabaseManager//获取单例对象方法+(id)shareINstance{  static DatabaseManager *dc = nil;  if (dc==nil) {    dc = [[DatabaseManager alloc] init];  }  return dc;}- (id)init{  if (self = [super init]) {    [self openDatabase];  }  return self;}- (void)openDatabase{  NSString *path = [[NSBundle mainBundle] pathForResource:@"data.sqlite" ofType:nil];  _database = [[FMDatabase alloc] initWithPath:path];  if (!_database.open) {    NSLog(@"打开失败");  }}//获取第一级目录- (NSArray *)firstLevels{  NSString *sql = @"select * from firstlevel";  FMResultSet *resultSet = [_database executeQuery:sql];  NSMutableArray *muArr = [[NSMutableArray alloc] init];  while ([resultSet next]) {    //    FirstLevelModel *model = [[FirstLevelModel alloc] init];    model.pid = [resultSet stringForColumn:@"pid"];    model.pname = [resultSet stringForColumn:@"pname"];    model.pcount = [resultSet stringForColumn:@"pcount"];    [muArr addObject:model];      }  return muArr;}//获取第二级目录-(NSArray *)secondLevels:(NSString *)str{  NSString *sql = @"select * from secondlevel where pid=?";  FMResultSet *resultSet = [_database executeQuery:sql,str];  NSMutableArray *muArr = [[NSMutableArray alloc] init];  while ([resultSet next]) {    //    SecondLevelModel *model = [[SecondLevelModel alloc] init];    model.pid = [resultSet stringForColumn:@"pid"];    model.sid = [resultSet stringForColumn:@"sid"];    model.sname = [resultSet stringForColumn:@"sname"];    model.scount = [resultSet stringForColumn:@"scount"];    [muArr addObject:model];      }  return muArr;}//获取第三级目录-(NSArray *)leafLevels:(NSString *)str{  NSString *sql = @"select * from leaflevel where sid=?";  FMResultSet *resultSet = [_database executeQuery:sql,str];  NSMutableArray *muArr = [[NSMutableArray alloc] init];  while ([resultSet next]) {    //    LeafLevelModel *model = [[LeafLevelModel alloc] init];    model.pid = [resultSet stringForColumn:@"pid"];    model.sid = [resultSet stringForColumn:@"sid"];    model.sname = [resultSet stringForColumn:@"sname"];    model.pname = [resultSet stringForColumn:@"pname"];    model.mquestion = [resultSet stringForColumn:@"mquestion"];    model.mdesc = [resultSet stringForColumn:@"mdesc"];    model.mid = [resultSet stringForColumn:@"mid"];    model.manswer = [resultSet stringForColumn:@"manswer"];    model.munknow = [resultSet stringForColumn:@"munknow"];    model.mtype = [resultSet stringForColumn:@"mtype"];    model.mimage = [resultSet stringForColumn:@"mimage"];    [muArr addObject:model];      }  return muArr;}@end

点击下载代码




原标题:iOS开发之数据库FMDB

关键词:IOS

IOS
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

eBay和PayPal确认并签署协议,将继续合作:https://www.ikjzd.com/articles/560
亚马逊FBA卖家短期内可免费移除滞销库存!:https://www.ikjzd.com/articles/561
9月4日起,EPacket将被从wish认可的物流服务商中移除!:https://www.ikjzd.com/articles/5612
亚马逊将进军巴西时尚及运动服装市场:https://www.ikjzd.com/articles/5619
亚马逊近期高频问题汇总:https://www.ikjzd.com/articles/562
如何写好search term关键词?关键词写作攻略来啦!:https://www.ikjzd.com/articles/563
温州旧货市场有玻璃柜卖吗?:https://www.vstour.cn/a/411246.html
如何用摄影作品表现“芳草鲜美,落英缤纷”的:https://www.vstour.cn/a/411247.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流