MQFMDB 在FMDB上封装了一层实现ORM操作

MQFMDB 在FMDB上封装了一层实现ORM操作完成之后在[MQFMDB MQFMDBFolder]中已经创建一个数据库和一张名叫TDSession表并且表里有一条name等于session的数据。

MQFMDB

在FMDB上封装了一层实现ORM操作

由于使用了SQLCipher来加密数据库所以你需要安装FMDB/SQLCipher版本推荐使用2.7.5版本

pod 'FMDB/SQLCipher', '=2.7.5'

目前支持的数据类型

  • NSString
  • NSDate
  • NSData
  • NSDictionary
  • NSArray
  • C基本数据类型

使用说明

  1. 创建配置文件

    {
    	"identify": "MQFMDB_Demo",
      	"version": "1.0.0",
    	"path": "<MQFMDB>/MQFMDB_Demo.sqlite",
      	"key": "123456789",
    	"upgrade": {}
    }
    
  2. 根据表结构建立类并继承MQFMDBObject, 类的属性中对应数据库的必须使用@dynamic关键字声明该属性, 并且属性名不能大写开头

    @interface TDSession : MQFMDBObject
    
    @property (nonatomic, copy) NSString * name;
    @end
    
    @implementation TDSession
    
    @dynamic name;
    @end
    
  3. 读取配置文件并使用MQFMDB打开数据库, 并在opertions block中建立表

    self.userDB = [[MQFMDB alloc] initWithConfigContent:configContent];
    [self.userDB openDataBaseWithForceOpenIfUpgradeFail:YES opertions:^(MQFMDB *db) {
    	/** 在这里创建表和其他操作 */
    	[db insertNewTable:[TDSession class]];
    }];
    
  4. 创建一条数据

    TDSession * session = [self.userDB insertNewObjectForTable:[TDSession class]];
    session.name = @"session";
    
  5. 保存数据

    [self.userDB saveOpertion];
    

完成之后在[MQFMDB MQFMDBFolder]中已经创建一个数据库和一张名叫TDSession表并且表里有一条name等于session的数据。

修改数据

  1. 读取配置文件打开数据库

    self.userDB = [[MQFMDB alloc] initWithConfigContent:configContent];
    [self.userDB openDataBaseWithForceOpenIfUpgradeFail:YES opertions:^(MQFMDB *db) {
        /** 在这里创建表和其他操作 */
        [db insertNewTable:[TDSession class]];
    }];
    
  2. 查询数据, 并获取查询到的第一条

    TDSession * session = [[self.userDB queryTable:[TDSession class] condition:@"name == 'session'"] firstObject];
    
  3. 修改数据

    session.name = "mmmm";
    
  4. 保存修改

    [self.userDB saveOpertion];
    

完成之后TDSession表中name == 'session'的第一条数据的name变为了mmmm

配置文件字段说明

  • identify 数据库标识符 一个App里面每个数据库标识符必须是唯一的

  • version 数据库版本号

  • key 数据库密码

  • upgrade 数据库升级的相关语句

  • path 数据库存放位置

    内置了两个目录<App><MQFMDB>
    <App>在App根目录下一般用于读取内置数据库
    <MQFMDB>在Documents目录下的MQFMDB文件夹如果没有则会自动创建

数据库升级

  1. 修改配置文件, 修改当前版本号, 并在upgrade建立一个在哪个版本升级的字段, 并在该字段里的commands里写入升级语句

    现在是从1.0.0升级到1.0.1,并在TDSession加入count字段

    {
      "identify": "MQFMDB_Demo",
      "version": "1.0.1",
      "path": "<MQFMDB>/MQFMDB_Demo.sqlite",
      "key": "123456789",
      "upgrade": {
      	"1.0.0": {
      		"commands": [
      			"ALTER TABLE `TDSession` ADD COLUMN count INTEGER"
      		]
      	}
      }
    }
    
  2. 修改TDSession类, 增加count属性,并且使用dynamic声明该属性

    @interface TDSession : MQFMDBObject
    
    @property (nonatomic, copy) NSString * name;
    /** version-1.0.1 */
    @property (nonatomic, assign) NSInteger count;
    @end
    
    @implementation TDSession
    
    @dynamic name;
    @dynamic count;
    @end
    
  3. 重新打开数据库就完成了升级运行之前需要保证当前数据库版本处于1.0.0版本

    对于SQLite不支持删除字段,所以推荐的做法是忽略这个字段,比如在类中删除该字段对应的属性

Demo中有增删查改的演示, 在Swift中使用,请使用桥接方法

Github: github.com/zx126211173…

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/37043.html

(0)

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注