Swift 中使用 SQLite——修改和删除数据

来源:互联网 发布:战地mac版 编辑:程序博客网 时间:2024/04/30 05:10

本文主要介绍在SQLite中修改数据删除数据:

  • 更新记录

/// 将当前对象信息更新到数据库////// - returns: 是否成功func updatePerson() -> Bool {    guard let name = name else {        print("姓名不能为空")        return false    }    if id <= 0 {        print("id 不正确")        return false    }    let sql = "UPDATE T_Person set name = '\(name)', age = \(age), height = \(height) \n" +        "WHERE id = \(id);"    return SQLiteManager.sharedManager.execSQL(sql)}

  • 删除记录

/// 将当前对象从数据库中删除////// - returns: 是否成功func deletePerson() -> Bool {    if id <= 0 {        print("id 不正确")        return false    }    let sql = "DELETE FROM T_Person WHERE id = \(id);"    return SQLiteManager.sharedManager.execSQL(sql)}

  • 测试代码

/// 测试更新数据private func demoUpdate() {    let p = Person(dict: ["id": 3000, "name": "老王", "age": 108, "height": 1.7])    if p.updatePerson() {        print("更新成功 \(p)")    } else {        print("更新失败")    }}/// 测试删除数据private func demoDelete() {    let p = Person(dict: ["id": 3000, "name": "老王", "age": 108, "height": 1.7])    if p.deletePerson() {        print("删除成功 \(p)")    } else {        print("删除失败")    }}

小结

  • 创表 / 新增 / 修改 / 删除 本质上都是执行一条 SQL 指令
  • 删除记录时,如果数据不存在,不会返回错误
  • 更新记录时,如果指定的 id 不存在,不会返回错误

数据操作方法扩展

  • 增加 execUpdate 函数
/// 执行 更新 / 删除 SQL////// - parameter sql: sql////// - returns: 返回 更新 / 删除 的数据行数func execUpdate(sql: String) -> Int {    if !execSQL(sql) {        return -1    }    // 返回影响的数据行数    return Int(sqlite3_changes(db))}
  • 修改更新和删除按钮,再次测试
/// 将当前对象从数据库中删除////// - returns: 是否成功func deletePerson() -> Bool {    if id <= 0 {        print("id 不正确")        return false    }    let sql = "DELETE FROM T_Person WHERE id = \(id);"    return SQLiteManager.sharedManager.execUpdate(sql) > 0}/// 将当前对象信息更新到数据库////// - returns: 是否成功func updatePerson() -> Bool {    guard let name = name else {        print("姓名不能为空")        return false    }    if id <= 0 {        print("id 不正确")        return false    }    let sql = "UPDATE T_Person set name = '\(name)', age = \(age), height = \(height) \n" +        "WHERE id = \(id);"    return SQLiteManager.sharedManager.execUpdate(sql) > 0}

备注

  • 新增记录可以使用 sqlite3_last_insert_rowid 获取最后插入的主键数值
  • 更新 / 删除记录可以使用 sqlite3_changes 获取影响数据行数
0 0
原创粉丝点击