美文网首页
SQLite.swift的使用

SQLite.swift的使用

作者: 做你的小星星 | 来源:发表于2017-04-01 16:08 被阅读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)
    

    相关文章

      网友评论

          本文标题:SQLite.swift的使用

          本文链接:https://www.haomeiwen.com/subject/uupiottx.html