Skip to content

Latest commit

 

History

History
130 lines (110 loc) · 3.26 KB

README_zh-cn.md

File metadata and controls

130 lines (110 loc) · 3.26 KB

SwiftFFDB


SwiftFFDB是一个ORM数据库,它支持在iOS和Perfect-Server上使用,SwiftFFDB是基于FMDB构建的。
如果你使用的是Objective-C,你可以尝试使用FFDB

Wiki

Wiki中有更多使用的例子(还没完成)

依赖

iOS

  • 基于Swift 4.0使用
  • 支持在iOS8.0之后
  • 依赖 FMDB

Perfect-Swift-Server

  • 基于Swift 4.0.3工具链使用
  • 在Perfect-Server v3中使用
  • 依赖 PerfectMySQL

安装

CocoaPod

SwiftFFDB 可以通过Cocoapod集成到你的工程中:

$ vim Podfile

在podfile中增加下面的内容:

platform :ios, '8.0'
target 'YouApp' do
use_frameworks!
pod 'SwiftFFDB'
end

Swift Package Manager

import PackageDescription

let package = Package(
    name: "PatchServer",
    dependencies: [
          .Package(url: "https://github.com/Fidetro/PerfectFFDB.git",versions: Version(0, 0, 0)..<Version(1, .max, .max))]
)

用法

初始化

你可以下载示例工程 如果你打算在iOS上使用:

Person.registerTable() //create table

或者Perfect-server:

    PerfectMySQLConnect(host: "", user: "", password: "", db: "").setup(complete: { (mysql) in
        Person.registerTable() //create table
    })

Create

创建一个表的模型:

struct Person:FFObject {
    var primaryID: Int64?
    
    var name : String?
    
    static func ignoreProperties() -> [String]? {
        return nil
    }
    
    static func customColumnsType() -> [String : String]? {
        return nil
    }
    
    static func customColumns() -> [String : String]? {
        return nil
    }
    
    static func autoincrementColumn() -> String? {
        return "primaryID"
    }    
}

Insert

将数据插入到表中:

var person = Person()
person.name = "fidetro"
person.insert()

Select

查询表中的数据:

// 查找所有数据
Person.select(where: nil)
// 查找name为 'fidetro' 
Person.select(where: "name = 'fidetro'")

Update

// 把name为'fidetro'改成'ffdb'
Person.update(set: "name = ?", where: "name = ?", values: ["ffdb","fidetro"])

Delete

删除表中的数据:

// find name is 'fidetro' 
let personList = Person.select(where: "name = 'fidetro'")

for (let person in personList){
    // delete this person in database
    person.delete()
}

你也可以使用底层的FFDBManager进行删除:

FFDBManager.delete(Person.self, where: "name = 'fidetro'")

Architecture

Support

SwiftFFDB是我个人的开源项目,如果有什么问题,可以在Issues提问或者邮件给我[email protected]