SQLite.swift的使用

2017-04-01  本文已影响510人  做你的小星星

知识储备:swift中异常处理

SQLite.swift这个库中有很多的异常处理,详细了解请点击下面的地址:

连接数据库

API介绍:

// 初始化一个SQLite的连接
// location:数据库路径,如果不存在的话,创建一个新的数据库
//          默认存储在`内存`,程序退出后数据库就会消失
// readonly:数据库是否是只读
//          默认`读写`
init(_ location: Location = .inMemory, readonly: Bool = false) throws
// 初始化一个SQLite的连接
// filename:数据库路径
convenience init(_ filename: String, readonly: Bool = false) throws

使用

let path = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0]
let db = try! Connection("\(path)/sqlite3.db")

创建表

API介绍

// 创建表
// name:数据库名称
public init(_ name: String, database: String? = nil)

使用

let users = Table("users")
let id = Expression<Int>("id")
let name = Expression<String?>("name")
let email = Expression<String>("email")
try! db.run(users.create(ifNotExists: true, block: { t in
  t.column(id, primaryKey: true)
  t.column(name)
  t.column(email, unique: true)
}))
// 相当于:
// CREATE TABLE "users" (
//     "id" INTEGER PRIMARY KEY NOT NULL,
//     "name" TEXT,
//     "email" TEXT NOT NULL UNIQUE
// )

增删改查

使用

let insert = users.insert(name <- "Alice", email <- "alice@mac.com")
let rowid = try db.run(insert)
// INSERT INTO "users" ("name", "email") VALUES ('Alice', 'alice@mac.com')

for user in try db.prepare(users) {
    print("id: \(user[id]), name: \(user[name]), email: \(user[email])")
    // id: 1, name: Optional("Alice"), email: alice@mac.com
}
// SELECT * FROM "users"

let alice = users.filter(id == rowid)

try db.run(alice.update(email <- email.replace("mac.com", with: "me.com")))
// UPDATE "users" SET "email" = replace("email", 'mac.com', 'me.com')
// WHERE ("id" = 1)
上一篇下一篇

猜你喜欢

热点阅读