使用 StORM 更新数据记录
与 StORM 的.insert方法一样,可以使用 .update 方法对数据对象对应的数据记录进行更新。
具体说来,.update有两种形式:
update(
cols: [String],
params: [Any],
idName: String,
idValue: Any
)
update(
data: [(String, Any)],
idName: String = "id",
idValue: Any
)
二者差别只是所用变量形式不同。
使用 Update 方法
请参考以下示例更新数据行:
let obj = User(connect)
obj.firstname = "Joe"
obj.lastname = "Smith"
// 首先,创建一行新数据
try obj.save {
id in obj.id = id as! Int
}
// 然后再改变数据内容
obj.firstname = "Mickey"
obj.lastname = "Mouse"
obj.email = "Mickey.Mouse@mailinator.com"
try obj.update(
cols: ["firstname","lastname","email"],
params: [obj.firstname, obj.lastname, obj.email],
idName: "id",
idValue: obj.id
)
上述方法介绍了如何直接更新数据的过程,这种情况下调用try obj.save()和 .update是同等效率的。
而.update更有效的使用环境是,在从数据源取得数据记录之前,您就实现已经掌握了主索引记录的值。
这种情况下,UPDATE操作将不经任何包装处理,直接连接到数据库完成操作。
let obj = User(connect)
try obj.update(
cols: ["firstname","lastname","email"],
params: ["Mickey", "Mouse", "Mickey.Mouse@mailinator.com"],
idName: "id",
idValue: 100001
)