




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于sqlite3 数据库的iOS APP 开发-以手机点餐系统为例黄 冈 师 范 学 院本 科 生 毕 业 论 文题 目: 基于sqlite3数据库iOS的app开发 -以手机点餐系统为例 专业班级: 电子信息工程2012级02班 学 号: 20101222240216 学生姓名: 黎勤 指导教师: 兰智高 论文完成日期: 2016 年 5 月郑 重 声 明本人的毕业论文是在指导老师 兰智高 的指导下独立撰写并完成的。毕业论文没有剽窃、抄袭、造假等违反学术道德、学术规范和侵权行为,如果有此现象发生,本人愿意承担由此产生的各种后果,直至法律责任;并可通过网络接受公众的查询。特此郑重声明。毕业论
2、文作者(签名): 2016 年 5 月 21日目 录摘 要3ABSTRCT41. 绪论61.1研究目的和意义61.2研究内容61.3研究方法和技术路线61.4项目的研究目标72. IOS的APP的设计的理论分析83.手机点餐系统项目过程93.1点餐系统的系统开发环境和运行运行环境分析93.2控制器(control)93.2.3删除菜品控制器123.2.4用户点菜菜品控制器133.2.5前台结账控制器163.2.5 厨房提醒控制器183.2.6 热点菜品控制器183.2.7打折活动控制器193.3数据存储方式203.4点餐系统的后期维护203.5点餐系统的优化方案213.5.1设置缓存策略213
3、.5.2创建缓存线程213.5.3在DetailViewController.m实现文件中224.SQLITE3数据库244.1 sqlite3数据库简介244.2 sqlite3数据的命令245. IOS的APP 开发265.1 iOS的app开发简介265.2 iOS的app前景分析265.3 iOS的app开发工具和开发语言276.结术语29参考文献30附录31附录一 :添加菜品控制器界面示意图31附录二:用户点餐界面设计示意图32附录三: 厨房提醒控制器实现的核心代码32附录四: 打折活动控制器实现代码33致 谢37第35页 共2页基于sqlite3数据库iOS的App设计-以手机点餐
4、系统为例专业:电子信息工程 班级:201202班 作者:黎勤 指导老师:兰智高摘 要 随着移动智能终端的广泛应用,移动终端正向功能增强化、多模化、定制化、平台开放化的方向发展,而移动终端营销(APP),作为SNS新的开拓渠道,正逐渐崭露头角。根据百度获得数据,得知iPhone手机在中国近5年销量遥遥领先于其他手机,并且在去年iOS的销量占据中国手机市场的百分之三十三的容量。因此,了解、学习如何开发移动端运用,用什么编程语言和开发模式将在未来几年有很大的发展空间和很好的发展前景。 本文介绍了一种现在最常用的最受人们推广的以及用户前景最好的的App开发的过程iOS的App(以手机点餐系统为例)以A
5、pp。在这里讲介绍开发的这个app意义、使用的技术、使用的难点和市场分析一一都有介绍。其中app开发过程中最主要的问题:数据存储的方式(如何使用sqlite3数据库来存储数据和使用数据库的数据)。 本文通过实际iOS的app项目开发的经验,简单将一个app开发的目的是什么,开发的市场在哪里以及开发的要求该如何实现。不仅如此,本文还对app开发的流程做了简单的描述,一个app开发从哪里开始,开始之后需要完成什么,然后其中细节应该如何实现,最后app设计完了后期应该如何优化和维护。 关键词:sqlite3数据库;app;iOS;OC.Based On Sqlite3 Database iOS Ap
6、p -Mobile Phone Ordering SystemProfessional: electronic information engineering class: telecommunications 201202 class author: Li Qin guide teacher: LanZhiGaoABSTRCT With the wide application of mobile intelligent terminal, mobile terminal positive function enhancement, multimode, customized, platfo
7、rm opening direction, while the mobile terminal marketing (APP), as SNS new open up channels, it gradually came to the fore. According to Baidu data, that iPhone mobile phone sales in China in the past 5 years Yuri Huang ahead of other mobile phones, and last year's iOS sales accounted for Thirt
8、y-three percent of the volume of China's mobile phone market. Therefore, understanding, learning how to develop the use of mobile terminals, with what programming language and development model will be in the next few years a lot of room for development and good prospects for development. This p
9、aper describes a process that is now most commonly used by people to promote the best of the App development of the user's best prospects - App iOS (in the case of a mobile phone ordering system) to App. Here to introduce the development of the meaning of the app, the use of technology, the use
10、of the difficulties and market analysis of one one are introduced. One of the most important problems in the process of app development: the way of data storage (how to use the SQLite3 database to store data and the use of database data). In this paper, through the actual app iOS project development
11、 experience, the simple will be what is the purpose of a app development, the development of the market where and how to achieve the development of the requirements. Not only that. This paper also for app development process do simple description, an app development from where to start, after the st
12、art of the need to accomplish what and the details should be how to realize, finally app design finished late should how to optimize and maintain.Key words: SQLite3 ; App; iOS; OC.1. 绪论1.1研究目的和意义目前,我国大多数酒店餐饮业在日常点菜管理中普遍采用手操作方式,整体科技含量低,随着酒店餐饮业的高速发展和餐饮业的规模的不断扩大,许多酒店酒店餐饮企业采用连锁经营和集团华运营,手工操作无论是工作效率还是人力成本都
13、难以适应快速发展的要求,制约了整个酒店餐饮业的规模和整体服务水平的提升。据预测,未来几年内,信数字技术息产品在中国饭店与餐饮业的应用将达到一个高峰,市场潜力不可估量。酒点菜系统而言,最普遍的事计算机收银台入菜单设备、pos点餐系统,除了这种点餐系统,其他的计算机信息系统以及从预定、接待、点餐、菜品上传、厨房分单打印、条码花菜、收银、经理查询等方面大型企业等方面在大型餐饮企业全方位整合起来。即使使用了这些计算机软件,还是不能排除人力操作的问题。但手机点餐系统却可以更大程度的降低人力成本。本来需要服务员事情却可以交给顾客来做。这样做的好处不仅仅是节约了人力成本,还让顾客有了更多的选择,因为再有心的
14、服务员也不可能对一个酒店里所有菜品的特点能一一具到、也不能对该酒店其他的事情有更多了解比如下周做特价活动、本周怎样消费有优惠、以前什么样的菜最受什么样的人群喜欢等诸多地方。手机点餐系统却有这样强大的作用,它可以把酒店里经理一切的想法都保存起来,也可以让这所有的想法在顾客面前体现出来。而酒店只需在每一个餐桌上放一个装有点餐系统的手机就可以实现这些事情。但这些想法却有一个核心,那就是“点餐系统的app” 8 。1.2研究内容本文以点餐系统app开发的整个过程为例,主要研究开发过程中的主要技术难点:sqlite3数据库存储数据的方式、iOS的app开发流程、iOS的app市场前景分析和扩展、sqli
15、te3数据库其他运用及扩展、手机点餐系统后期的维护。11.3研究方法和技术路线设计手机点餐系统iOS版首先得从如何开发iOS的app入手,先得了解iOS手机应用的开发的流程,再了解流程之后应该如何实现这些模块,而这些模块的难点应该攻克方式和解决问题的办法,最后完成了app应该如何去更新维护并将产品如何在市场上运营。1.4项目的研究目标(1) 实现基本的点餐系统的功能:添加菜品、删除菜品、用户点菜、前台结账、厨房提醒、热点菜品、打折活动。并且后台运行没有bug。(2) sqlite3数据库使用的体现:增加数据、删除数据、修改数据、查询数据。(3)iOS的app模块实现:界面设计、demo的制作
16、13 。2. iOS的app的设计的理论分析图2- 1 理论分析原理图图1-1为开发iOS的app流程图。开发iOS的app首先得确定开发的目的和意义,在之后就是拟定需要设计的功能,根据上面我们提到点餐系统的功能就可以确我们需要的控制权器,通过在控制器里面的代码编写,我们可以根据需求拟定app界面风格,app的数据存储方式,数据的体现又是在界面上面反映出来的。以上就是一般iOS的app一般开发过程 9 。3.手机点餐系统项目过程3.1点餐系统的系统开发环境和运行运行环境分析点餐系统是开发环境:Xcode7.0点餐系统使用的开发语言:OC点餐系统支持运行环境:iPhone、iPad3.2控制器(
17、control)根据需求,添加菜品、删除菜品、用户点菜、前台结账、厨房提醒、热点菜品、打折活动。添加菜品:根据饭店需求添加菜品。删除菜品:根据饭店需求删除最近没有或者过时的菜品。前台结账:收银员根据桌号统计点菜需要的费用并在结账之后删除 数据库里点菜的信息。厨房提醒:每次有顾客点餐都会将菜单刷新到厨房提醒厨师准备菜 品。热点菜品:每次顾客进入本公司的点餐系统都会看到最近半年最受 欢迎的八个菜品。打折活动:在点餐系统的主页面都有一个近期和下段时间打折活动的信息。控制器设计流程图为图2-2所示。图2- 2 控制器设计流程图3.2.1主控制器(view Controller)的介绍主控制器的主要功能
18、是管理下面诸多功能控制器以及实现点餐系统的主界面显示,这里我选择的主控制器是一般的viewcontroller,而不是开发中页面常用的导航控制器(UINavitionController)。虽然一般的控制器没有意见分装好的导航控制器便捷,使用起来的操作更加复杂,代码量更大,但一半的viewcontroller的优点是灵活多变,选择性更多,而且兼容性也更加好。这主控制器也相当于世自定义控制器的开发方式来实现主控制器的选择。下面是主控制器的部分项目代表性的代码:self setToolBarFrame ;/设置自定义导航条在手机屏幕上显示的大小,这里采用调用方法实现,为了减少主控制器代码量,方便调
19、试。self.AllFootBtn addTarget:self action:selector(ClickAllFootBtn:) forControlEvents:UIControlEventTouchUpInside;/添加导航条按钮的点击事件,使屏幕上的按钮一点实现页面跳转。-(void)setToolBarFrame self.toolBar mas_makeConstraints:(MASConstraintMaker *make) make.left.offset(0); make.height.offset(50); make.right.equalTo(self.view.m
20、as_right); make.bottom.offset(-10); ; /这里是设置导航条按钮的具体方法,在这里我使用了第三方库。在iOS的app开发有很多别人写好的代码库可以再指定的网站上下载使用,这样可以大大提高工作效率以及减少代码出错的概率。-(void)ClickAllFootBtn:(UIButton*)AllFoot AllFootTableViewController *allfoottablecontroller=self.board instantiateViewControllerWithIdentifier:"AllFoot" ; self pre
21、sentViewController:allfoottablecontroller animated:YES completion:nil ;/这里是如何实现按钮点击事件的具体方法,其中主要是创建新的控制器对象和将新的对象添加到导航条按钮的点击事件中去。3.2.2添加菜品功能的控制器 添加菜品主要功能是界面设计和往数据库里添加你需要的菜单数据。所以这里选择使用一般的viewController。从这里开始我们将介绍sqlite3数据库创建数据库、创建工作表格以及添加数据的具体实现。界面设计:根据实际情况,一般的菜品应该这些属性:菜名,菜系,菜的简介,菜的价格,本菜半年之内被点到的数量,菜的图片
22、,以及其他相关信息。下面是我做的简单界面,由于没有美术资源和美术风格设定,我就按照自己喜好做了一个添加菜品的界面。4这个界面设计的十分简单,界面上只有Laber、Text Field、Button三种控件,但这已经能够实现添加菜品的功能。界面详细设计请参考“附录一”的界面设计示意“附录 图1- 1”。功能实现:这里主要实现的事将店主往需要的数据添加到数据库中fp=NSHomeDirectory() stringByAppendingPathComponent:"menuSystem.db" ; db = FMDatabase databaseWithPath:fp; db
23、open ; db executeUpdate:"create table if not exists AddFootManue(id integer primary key, mealname text,staffNum integer,Allprice integer)"BOOL ret=db executeUpdate:"insert into menu(cainame,caixi,price) values(?,?,?,?,?,?,?)",name,cx,dis,img,prc,hot,other;/从上到下代码的主要作用是将你输入菜名王数据库里
24、添加数据self dismissViewControllerAnimated:YES completion:nil;/跳回到主页面3.2.3删除菜品控制器删除菜品主要的功能是店主选择数据库里一些不需要的菜品,并在店主删除这些菜品之后将这些删除菜品的数据导入“删除菜品”的数据库工作内,以方便下次店主想还原这些菜品可以直接从这个工作表中导出。这些功能实现店主远程管理菜单的。界面设计:图3- 1所示。图 3- 2 菜品控制器界面设计功能实现: 删除菜品主要功能是通过名字在数据库菜单工作表中删除该名字的菜品,并在点击确认删除之后跳回到主页面。实现代码:fp=NSHomeDirectory() stri
25、ngByAppendingPathComponent:"menuSystem.db" ; db = FMDatabase databaseWithPath:fp; db open ; db executeUpdate:"create table if not exists AddFootManue(id integer primary key, mealname text,staffNum integer,Allprice integer)"BOOL ret=db executeUpdate:"insert into menu(cainame,
26、caixi,price) values(?,?,?,?,?,?,?)",name,cx,dis,img,prc,hot,other;/从上到下代码的主要作用是将你输入菜名王数据库里删除数据数据BOOL deleteRet = menuSystem1 executeUpdate:"delete from menu where cainame=?",cm;/删除表格里的数据self dismissViewControllerAnimated:YES completion:nil;/跳回到主页面3.2.4用户点菜菜品控制器用户点菜控制器主要的功能是将数据菜单工作表的内容
27、在手机界面上展现给顾客,这里主要涉及到5个问题:(1)遍历数据库里的整个菜单(2)将遍历的内容在界面上显示出来(3)顾客点击点菜按钮之后将在加入数据库新建一个以改桌号名为名字的工作表,并在没点一个菜几句讲这个菜的信息加入点的这个工作里面(4)顾客觉得之前点的菜不好,想重新删除掉之前的菜,点击取消的时候将顾客选择删除的目标在数据库中将数据清空(5)顾客确认点菜完毕之后向顾客展示他点过所有菜的信息。这个控制器内容相对于前面的两个功能控制器的内容略显繁杂,所以我们在实现这个功能的时候要利用iOS开发中的常用技巧,就是多写方法,多编辑功能快的类,这样做可以说使我们更加容易管理代码以及更加方便调试代码。
28、界面设计:请参考附录二的“附录 图2-1”用户点餐界面示意图。界面设计的代码:(1)确自定义单元格的frame(长、宽、位置、内容)interface JZMenuCell ()<UIGestureRecognizerDelegate>/这里使用代理方法处理前后两个数据之间的数据交互 BOOL _isOpen;/打开界面 BOOL _isScrollClose;/关闭界面 CGFloat _startX;/设置大小 UIView *_menuView;创建view对象 UIPanGestureRecognizer *_panGesture;-(void)initUI _panGes
29、ture = UIPanGestureRecognizer alloc initWithTarget:self action:selector(handlePanGesture:); _panGesture.delegate = self; self.contentView addGestureRecognizer:_panGesture; UITapGestureRecognizer *tapGesture = UITapGestureRecognizer alloc initWithTarget:self action:selector(handleTapGestrue:); tapGes
30、ture.delegate = self; . ./ 菜单项 CGFloat _menuViewX = CGRectGetWidth(_ContentView.frame)-_menuViewWidth; . . CGFloat btnWidth = _menuViewWidth/(CGFloat)menuItemCount; CGFloat (currentWidth)(NSInteger i) = (NSInteger i) CGFloat width = 0.0; for (NSInteger j = 0; j < i; j+) width += _menuItemWidthsj
31、floatValue; return width; ; /创建菜单按钮. btn addTarget:self action:selector(clickMenuItem:) forControlEvents:UIControlEventTouchUpInside; _menuView addSubview:btn; (2)创建tableview对象并将其frame按照上面代码来设置-(UIView *)tableView:(UITableView *)tableView viewForFooterInSection:(NSInteger)section UIView *footerView
32、= UIView alloc initWithFrame:CGRectMake(0, 0, screen_height, 75); footerView.backgroundColor = RGB(239, 239, 244); return footerView;(3)实现顾客点餐,往数据库里添加内容fp=NSHomeDirectory() stringByAppendingPathComponent:"menuSystem.db" ; db = FMDatabase databaseWithPath:fp; db open ; db executeUpdate:&quo
33、t;create table if not exists AddFootManue(id integer primary key, mealname text,staffNum integer,Allprice integer)"BOOL ret=db executeUpdate:"insert into menu(cainame,caixi,price) values(?,?,?,?,?,?,?)",name,cx,dis,img,prc,hot,other;/从上到下代码的主要作用是将你输入菜名王数据库里添加数据self dismissViewControll
34、erAnimated:YES completion:nil;/跳回到主页面(4)顾客觉得之前的菜不好将其删掉fp=NSHomeDirectory() stringByAppendingPathComponent:"menuSystem.db" ; db = FMDatabase databaseWithPath:fp; db open ; db executeUpdate:"create table if not exists AddFootManue(id integer primary key, mealname text,staffNum integer,A
35、llprice integer)"BOOL ret=db executeUpdate:"insert into menu(cainame,caixi,price) values(?,?,?,?,?,?,?)",name,cx,dis,img,prc,hot,other;/从上到下代码的主要作用是将你输入菜名王数据库里删除数据数据BOOL deleteRet = menuSystem1 executeUpdate:"delete from menu where cainame=?",cm;/删除表格里的数据self dismissViewCont
36、rollerAnimated:YES completion:nil(5)顾客确定点餐完毕之后将点餐的内容展现给顾客-(void)initTableView self.tableView = UITableView alloc initWithFrame:CGRectMake(0, 64, screen_width, screen_height-49-64) style:UITableViewStyleGrouped; self.tableView.delegate = self; self.tableView.dataSource = self; self.view addSubview:se
37、lf.tableView; self setUpTableView;将这个方法在指的的位置调用就能实现用点餐完毕之后在tableview上展现数据的功能3.2.5前台结账控制器前台结账需要实现的功能是根据桌号在数据库中遍历改桌所有点过的菜,并将每个菜的价格统计总和,同时将这个桌号在数据库中对应的工作表删除掉。界面实现:于上面删除的界面设置相同代码实现: fPath=NSHomeDirectory() stringByAppendingPathComponent:"menuSystem.db" dbs1= FMDatabase databaseWithPath:fPath;
38、dbs1 open ; printf("%10s%15s%10s%10sn","Number","FoodName","StaffNum","AllPrice"); FMResultSet *rs = dbs1 executeQuery: "select *from setmeal " while (rs next) printf("%10s%15s%10s%10sn",rs stringForColumnIndex:0 UTF8String,rs str
39、ingForColumnIndex:1 UTF8String,rs stringForColumnIndex:2 UTF8String,rs stringForColumnIndex:3UTF8String); NSNumber *idtable; idtable = PayList ScanfNum ; rs = dbs1 executeQuery: " select * from Setmeal where id = ?",idtable; while (rs next ) printf("%10s %10s n",rs stringForColum
40、nIndex:1 UTF8String,rs stringForColumnIndex:3 UTF8String); rs = dbs1 executeQuery: " select * from setmeal where id = ?",idtable; int flag = 0; dbs1 close;以上代码从打开数据库到遍历工作再到界面显示最后关闭数据库。3.2.5 厨房提醒控制器厨房提醒主要定时刷新数据库里除了菜单,删除菜的菜单其他所有的工作表,这些工作表都是客户点过菜的所有菜品,在这还要做的一件事就是避免重复刷新,所以每当之前遍历过的工作表就不要再展示。这里的
41、难点是涉及到定时器和约束遍历内容的遍历方法。界面显示与上面点菜的界面相同只是这里只需要查看,不需要添加按钮点击事件,这样实现起来相对简单,不复杂。代码实现请参考“附录三”得具体代码,上有讲述是怎样实现这一功能的核心操作的过程。3.2.6 热点菜品控制器这里主要需要实现的功能是将数据菜单工作表格所有的菜的被点的总和进行排序,然后将被点最多八个菜的信息在主控制器中的现实热菜的位置打印出来。界面显示:如图 3-3 所示图3- 3 热点菜品控制器界面设计代码实现:排序:void swap(int *p1, int *p2) int temp; temp=*p1; *p1=*p2; *p2=temp;v
42、oid insertSort(int *a,int len) int i,j; for(i=0;i<len;i+) for(j=i+1;j>=1;j-) if(aj<aj-1) swap(&aj,&aj-1); 打印: self.webView = UIWebView alloc initWithFrame:CGRectMake(0, 64, screen_width, screen_height-64); self.webView.delegate = self; self.webView.scalesPageToFit = YES; self.view a
43、ddSubview:self.webView;AppDelegate* delegate = (AppDelegate*)UIApplication sharedApplication delegate;通过代理的方式将数据库里的内容在tableview上显示出来。3.2.7打折活动控制器打折活动根据店主需要设定的比例,在主控制器中将打折内容显示出来,这里涉及iOS开发中的一个新的技术colletionview界面显示:图3- 4所示图3- 5 打折活动控制界面代码实现:请参考“附录四”的打折活动控制器实现代码colletionview时iOS常用的现实界面方式,这种选择视图对可以让用户实现滚
44、动效果。3.3数据存储方式sqlite3数据库是本次项目的主要存储数据的方式,我们同坐制作model的类,分类管理项目文件,这样的操作时项目更具有条理看起来更加的清晰,即使代码冗杂,但分类管理可以让诸多代码以模块在不同的地方得到体现 12 。3.4点餐系统的后期维护 关于可用性的测试和评估,在国外现在已经形成一个新的专业,称为可用性工程(Usability Engineering)。由于是一个专业,因此就有专门的人员来从事这项工作,并发展出一整套的方法和技术来进行可用性的测试和评估。根据我们给软件可用性所下的定义,一个软件可用性的测试和评估应该遵循以下原则5: (1)最具有权威性的可
45、用性测试和评估不应该是专业技术人员,而应该是产品的用户。因为无论这些专业技术人员的水平有多高,无论他们使用的方法和技术有多先进,最后起决定作用还是用户对产品的满意程度。因此,对软件可用性的测试和评估,主要应由用户来完成。 (2) 软件的可用性测试和评估是一个过程,这个过程早在产品的初样阶段就开始了。因此一个软件在设计时反复征求用户意见的过程应与可用性测试和评估程结合起来进行。当然,在设计阶段反复征求意见的过程是后来可用性测试的基础,不能取代真正的可用性测试。但是如果没有设计阶段反复征求意见的过程,仅靠用户最后对产品的一两次评估,是不能全面反映出软件的可用性。 (3)软件的可用性测试必
46、须是在用户的实际工作任务和操作环境下进行。可用性测试和评估不能靠发几张调查表,让用户填写完后,经过简单的统计分析就下结论。可用性测试必须是用户在实际操作以后,根据其完成任务的结果,进行客观的分析和评估。(4)要选择有广泛代表性的用户。因为对软件可用性的一条重要要求就是系统应该适合绝大多数人使用,并让绝大多数人都感到满意。因此参加测试的人必须具有代表性,应能代表最广大的用户。3.5点餐系统的优化方案3.5.1设置缓存策略首先在SplitDemoAppDelegate委托代理中,实现如下代码:在SplitDemoAppDelegate.h文件中,代码如下:#import <UIKi
47、t/UIKit.h> class ASIDownloadCache; interface SplitDemoAppDelegate : NSObject <UIApplicationDelegate,UITabBarControllerDelegate> UIWindow *_window; ASIDownloadCache*_downloadCache;
48、160; /下载缓存策略 property (nonatomic, retain) ASIDownloadCache*downloadCache; end 3.5.2创建缓存线程这一步是创建一个NSOperation类,实现缓存的方法,代码如下:ResourceContainer.h文件实现:#import <Foundation/Founda
49、tion.h> #import "ASIHTTPRequest.h" #import "SplitDemoAppDelegate.h" interface ResourceContainer : NSOperation NSURL*_resourceURL; &
50、#160;/资源请求url NSObject*_hostObject; SEL_resourceDidReceive; /资源接手响应方法 SplitDemoAppDelegate*_appDelegate;
51、160; /应用委托对象 ASIHTTPRequest*_httpRequest; UIImageView*_imageView;
52、0;3.5.3在DetailViewController.m实现文件中#import "ProductDetailViewController.h" /这里引入在第二步中,我们创建的对象 #import "ResourceContainer.h" implementation DetailViewController synthesize imageURL = _imageURL; sy
53、nthesize originalIndexArray = _originalIndexArray; synthesize originalOperationDic = _originalOperationDic; synthesize requestImageQueue = _requestImageQueue; - (void)viewDidLoad super viewDidLoa
54、d; NSOperationQueue *tempQueue = NSOperationQueue alloc init; self.requsetImageQueue = tempQueue; tempQueue release; NSMutableArray *array = NSMutableArray alloc init; self.o
55、riginalIndexArray = array; array release; NSMutableDictionary *dic = NSMutableDictionary alloc init; self.originalOperationDic = dic; dic release; &
56、#160;4.sqlite3数据库4.1 sqlite3数据库简介 SQLite是一个轻量级自包含的DBMS,他具有诸多意想不到的特性:小巧、事务、绿色、并发、零配置、可移植、开源等,开发使用时仅仅需要一个头文件,一个动态库文件,就拥有关系数据库的所有功能。在电子数据的发展历程中,SQLite应用场景也越来越广泛,其中嵌入式设备是SQLite应用的主要场景,典型代表为Google的Android。此外,桌面应用和Websites也越来越多地使用SQLite。当下手机应用市场发展迅猛,几乎所有手机平台下的APP存储数据时都使用到SQLite数据库,比如Android、iOS、Windows Mo
57、bile、Symbin、Palm等。随着智能手机的迅速普及,针对智能设备的取证、删除数据的恢复等技术也越来越重要,尤其是对电子数据取证、司法调查等领域,被删除的手机信息往往具有更高的价值。 Sqlite3就是在sqlite的基础上将其操作编写成一个直接调用的方法,这样使用sqlite数据库就更加的方便快捷简单。124.2 sqlite3数据的命令(1)打开数据库:在终端里先进入你要访问的文件夹 ,再输入sqlite ”数据库的名称”,如果该文件夹没有该数据库,系统会自动创建一个新的数据库,如果有,则直接访问。(2)在数据库中创建工作表格:在终端中输入命令“create table 表格名(表格
58、属性)”。表格属性可以是:数字(id intfloat)、字符串(name textchar).(3)往表格中插入数据:insert into 表格名 values('定义的属性,有几个加几个,并且用逗号隔开);(4)查询表格中的数据:select 属性名 from 表格名 where 属性值 (5)删除表格中的数据:delete from 表格名 where 属性名=属性值;(6)更新表格中的数据:update 表格名 set where 属性名 修改的属性值。4.3 sqlite3数据库在项目中的运用本次方便使用sqlite3数据我使用第三方封装包(FMDBOC封装的sqlite3在终端里的命令包)使用sqite3数据的处理数据功能。项目中的代码: fp=NSHomeDirectory() stringByAppendingPathComponent:"menuSystem.db" ; db = FMDatabase databaseWithPa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 33798-2025生物聚酯连卷袋
- 期中测试卷 第1、2、3单元 (含答案)统编版七年级语文下册
- 财务决策与风险管理相关对策试题及答案
- 项目战略思考的试题及答案
- 驾校教练车使用承包协议
- 探究2025年国际金融理财师考试的投资者行为试题及答案
- 项目管理资格考试中的重要习惯与试题答案
- 行政管理师考试的知识与能力要求试题及答案
- 有趣的学习角度的证券从业资格证考试试题及答案
- 战略调整的关键因素与总结计划
- 《安全阀培训》课件
- 四年级语文下册 第17课《记金华的双龙洞》同步训练题(含答案)(部编版)
- 国之重器:如何突破关键技术-笔记
- 学校直饮水施工方案
- 2024中考化学总复习必刷80题(第1-80题)(含解析)
- 人力资源管理测试题答案
- 2023-2024学年贵州省黔南州八年级(下)期末数学试卷(含答案)
- 临床重点学科验收课件
- JBT 11735-2014 铝合金锌合金压铸生产安全技术要求
- 2023年江苏省南京市联合体八年级(下)期中生物试卷(含解析)
- 北师大版数学七年级下册《期中检测卷》及答案解析
评论
0/150
提交评论