ios数据库

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

我的未来我决定 提交于 2020-03-16 08:10:31
一、简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **ppDb // 数据库实例 ); 2.执行任何SQL语句 int sqlite3_exec( sqlite3*, // 一个打开的数据库实例 const char *sql, // 需要执行的SQL语句 int (*callback)(void*,int,char**,char**), // SQL语句执行完毕后的回调 void *, // 回调函数的第1个参数 char **errmsg // 错误信息 ); 3.检查SQL语句的合法性(查询前的准备) int sqlite3_prepare_v2( sqlite3 *db, // 数据库实例 const char *zSql, // 需要检查的SQL语句 int nByte, // SQL语句的最大字节长度 sqlite3_stmt **ppStmt, // sqlite3_stmt实例,用来获得数据库数据 const char **pzTail ); 4.查询一行数据 int sqlite3_step(sqlite3_stmt*); // 如果查询到一行数据,就会返回SQLITE_ROW 5.利用stmt获得某一字段的值(字段的下标从0开始) double sqlite3

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

核能气质少年 提交于 2020-03-12 11:32:09
一、简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **ppDb // 数据库实例 ); 2.执行任何SQL语句 int sqlite3_exec( sqlite3*, // 一个打开的数据库实例 const char *sql, // 需要执行的SQL语句 int (*callback)(void*,int,char**,char**), // SQL语句执行完毕后的回调 void *, // 回调函数的第1个参数 char **errmsg // 错误信息 ); 3.检查SQL语句的合法性(查询前的准备) int sqlite3_prepare_v2( sqlite3 *db, // 数据库实例 const char *zSql, // 需要检查的SQL语句 int nByte, // SQL语句的最大字节长度 sqlite3_stmt **ppStmt, // sqlite3_stmt实例,用来获得数据库数据 const char **pzTail ); 4.查询一行数据 int sqlite3_step(sqlite3_stmt*); // 如果查询到一行数据,就会返回SQLITE_ROW 5.利用stmt获得某一字段的值(字段的下标从0开始) double sqlite3

iOS中CoreData数据管理系列四——进行数据与页面的绑定

旧时模样 提交于 2020-03-02 18:42:08
iOS中CoreData数据管理系列四——进行数据与页面的绑定 一、引言 在上一篇博客中,我们讨论了CoreData框架中添加与查询数据的操作,事实上,在大多数情况下,这些数据都是由一个UITableView表视图进行展示的,因此,CoreData框架中还未开发者提供了一个类NSFetchedResultsController,这个类作为桥接,将视图与数据进行绑定。 添加与查询数据操作: http://my.oschina.net/u/2340880/blog/611430 。 二、进行数据初始化 NSFetchedResultsController的初始化需要一个查询请求和一个数据操作上下文。代码示例如下: //遵守协议 @interface ViewController ()<NSFetchedResultsControllerDelegate> { //数据桥接对象 NSFetchedResultsController * _fecCon; } @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //进行初始化操作 NSURL *modelUrl = [[NSBundle mainBundle]URLForResource:@"Model" withExtension:@

ios开发中如何使用sqlite数据库

℡╲_俬逩灬. 提交于 2020-02-15 16:55:36
首先,使用sqlite存储数据,需要添加libsqlite3.dylib 这个动态库,然后 添加动态库的主头文件 #import <sqlite3.h> // db就是数据库的象征,如果要进行CRUD(增删改查),得操作db这个实例 @property (nonatomic, assign) sqlite3 *db; 第一步: 打开数据库。 当系统第一次用到数据库时, 我们先创建一个数据库文件,并创建表,就在这一步。 // 获得数据库文件的路径,即沙盒 NSString *doc = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject]; NSString *filename = [doc stringByAppendingPathComponent:@"students.sqlite"]; // 将OC字符串 转成 C语言字符串 const char *cfilename = filename.UTF8String; // 1.打开数据库(如果数据库文件不存在,sqlite3_open函数会自动创建数据库文件) int result = sqlite3_open(cfilename, &_db); // 这个open方法 就是打开数据库

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

会有一股神秘感。 提交于 2020-01-27 05:39:45
iOS开发数据库篇—SQLite常用的函数 一、简单说明 1.打开数据库 int sqlite3_open( const char *filename, // 数据库的文件路径 sqlite3 **ppDb // 数据库实例 ); 2.执行任何SQL语句 int sqlite3_exec( sqlite3*, // 一个打开的数据库实例 const char *sql, // 需要执行的SQL语句 int (*callback)(void*,int,char**,char**), // SQL语句执行完毕后的回调 void *, // 回调函数的第1个参数 char **errmsg // 错误信息 ); 3.检查SQL语句的合法性(查询前的准备) int sqlite3_prepare_v2( sqlite3 *db, // 数据库实例 const char *zSql, // 需要检查的SQL语句 int nByte, // SQL语句的最大字节长度 sqlite3_stmt **ppStmt, // sqlite3_stmt实例,用来获得数据库数据 const char **pzTail ); 4.查询一行数据 int sqlite3_step(sqlite3_stmt*); // 如果查询到一行数据,就会返回SQLITE_ROW 5.利用stmt获得某一字段的值

iOS 数据库操作(使用FMDB)

房东的猫 提交于 2020-01-25 17:47:36
iOS 数据库操作(使用FMDB) iOS中原生的SQLite API在使用上相当不友好,在使用时,非常不便。于是,就出现了一系列将SQLite API进行封装的库,例如FMDB、PlausibleDatabase、sqlitepersistentobjects等,FMDB ( https://github.com/ccgus/fmdb ) 是一款简洁、易用的封装库,这一篇文章简单介绍下FMDB的使用。 在FMDB下载文件后,工程中必须导入如下文件,并使用 libsqlite3.dylib 依赖包。 FMDB同时兼容ARC和非ARC工程,会自动根据工程配置来调整相关的内存管理代码。 FMDB常用类: FMDatabase : 一个单一的SQLite数据库,用于执行SQL语句。 FMResultSet :执行查询一个FMDatabase结果集,这个和android的Cursor类似。 FMDatabaseQueue :在多个线程来执行查询和更新时会使用这个类。 创建数据库: [cpp] view plain copy print ? db = [FMDatabase databaseWithPath:database_path]; 1、当数据库文件不存在时,fmdb会自己创建一个。 2、 如果你传入的参数是空串:@"" ,则fmdb会在临时文件目录下创建这个数据库,数据库断开连接时

饱了吗-数据库与iOS个人总结

送分小仙女□ 提交于 2019-12-16 12:42:31
饱了吗-数据库与iOS个人总结 数据库github iOSgithub 一.数据库 1.1 数据库设计 数据库cdm,pdm图 1.2 数据库数据    数据库数据来源于浙江大学城市学院晨苑餐厅和北秀生活广场 ,图片来源网络 二.iOS 2.1 iOS界面 2.2 iOS数据   使用的是iOS的Swift语言,由于对该语言的不熟悉,应用界面比较简陋。由于无法解析json格式,所以使用的是Swift自带的原生数据库CoreData,将数据存在本地,读取数据,渲染界面。首页展示了各个店家,点击店家后会加载菜单和店家信息;订单页面展示了历史订单,点击后可以展示订单详情;用户页面是展示用户信息。 三.个人总结    在整个项目中,我积极参与到小组的讨论中,参与需求分析,并提出了建设性意见。在前期规划中,我绘制了用户下单和评论的时序图。项目实施阶段,我主要负责的是腾讯云MySql数据库的搭建,管理和维护;项目的iOS端app。对于数据库而言,在实际应用时存在卡顿现象,可能由于数据库设计的欠合理。而对于iOS端的app制作,我对于自己不太满意,由于技术,时间等一系列因素,最后展示的内容也并不全面,还有很大地提升空间。 四.对于本学期软件工程课的建议   对于朱勇老师基于《构建之法》授课我觉得是非常不错的,区别于传统软件工程课直接进行团队项目,本次的个人 项目也是让人收获颇多。在团队项目中

iOS 四种保存数据的方式!

柔情痞子 提交于 2019-12-15 19:09:18
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 在iOS开发过程中,不管是做什么应用,都会碰到数据保存的问题。将数据保存到本地,能够让程序的运行更加流畅,不会出现让人厌恶的菊花形状,使得用户体验更好。下面介绍一下数据保存的方式: 1.NSKeyedArchiver:采用归档的形式来保存数据,该数据对象需要遵守NSCoding协议,并且该对象对应的类必须提供encodeWithCoder:和initWithCoder:方法。前一个方法告诉系统怎么对对象进行编码,而后一个方法则是告诉系统怎么对对象进行解码。例如对Possession对象归档保存。 定义 Possession: @interface Possession:NSObject<NSCoding>{//遵守NSCoding协议 NSString *name;//待归档类型 } @implementation Possession -(void)encodeWithCoder:(NSCoder *)aCoder{ [aCoder encodeObject:name forKey:@"name"]; } -(void)initWithCoder:(NSCoder *)aDecoder{ name=[[aDeCoder decodeObjectforKey:@"name"] retain]; } 归档操作:

iOS开发中的sqlite数据库

血红的双手。 提交于 2019-12-05 02:55:58
1.iOS开发中的数据一般指sqlite,而如果连接服务器,那就另说,那就不是iOS开发直接操作其它数据库,譬如SqlSever,Mysql,Orical。要使用数据库sqlite,首先将libsqlite3.0.dylib加到项目中。5.0之后的版本导入数据库头文件变成了#import "sqlite3.h",之前还有指定路径user,这也说明苹果不断改进着。   2.iOS开发中有个沙箱的概念。什么是沙箱?简单的理解就是指在iOS开发中程序能操作的位置只能在指定目录,意思就是只能在沙箱中进行操作。譬如文件的写入写出,要传输的图片,都只能放在那个目录,当然你也可以在其中建立子目录。数据库的本质其实也是一个文件,所以也只能在目录中进行,那么数据库建立的路径也只能在这个目录下。   3.首先是数据库要保存的路径   NSArray *array=NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);   NSString *documentsPaths=[array objectAtIndex:0];   NSString *databasePaths=[documentsPaths stringByAppendingPathComponent:"test_DB"];   4

iOS

孤者浪人 提交于 2019-12-03 19:34:45
初识FMDB iOS中原生的 SQLite API在进行数据存储的时候,需要使用C语言中的函数,操作比较麻烦。于是,就出现了一系列将SQLite API进行封装的库,例如 FMDB 、 PlausibleDatabase 、 sqlitepersistentobjects 等。 FMDB是一款简洁、易用的封装库。因此,在这里推荐使用第三方框架FMDB,它是对libsqlite3框架的封装,用起来的步骤与SQLite使用类似,并且它对于多线程的并发操作进行了处理,所以是线程安全的。 FMDB PK Sqlite 优点: 对多线程的并发操作进行处理,所以是线程安全的; 以OC的方式封装了 SQLite 的C语言API,使用起来更加的方便; FMDB是轻量级的框架,使用灵活。 缺点: 因为它是OC的语言封装的,只能在ios开发的时候使用,所以在实现跨平台操作的时候存在局限性。 FMDB框架中重要的框架类 FMDatabase FMDatabase 对象就代表一个单独的 SQLite 数据库,用来执行 SQL 语句 FMResultSet 使用 FMDatabase 执行查询后的结果集 FMDatabaseQueue 用于在多线程中执行多个查询或更新,它是线程安全的 FMDB使用步骤 下载FMDB文件 GitHub ,并将FMDB文件夹添加到项目中(也可使用CocoaPods导入) 导入