freesql InsertOrUpdate
时间: 2023-08-22 15:10:09 浏览: 177
freesql 中的 InsertOrUpdate 方法可以用来实现数据的插入或更新操作,具体实现方法如下:
1. 首先创建一个实体对象,设置需要插入或更新的属性值。
2. 然后使用 InsertOrUpdate 方法,传入实体对象和需要插入或更新的字段名。
3. InsertOrUpdate 方法会根据实体对象的主键值来判断是插入新数据还是更新已有数据。
示例代码如下:
```python
from freesql import FreeSql, DbContext
# 创建一个实体对象
class User:
def __init__(self, id, name, age):
self.id = id
self.name = name
self.age = age
# 创建数据库连接
db = FreeSql.create('sqlite://test.db').sync()
# 创建一个数据上下文对象
class DemoContext(DbContext):
users = db.set(User).primary_key('id').with_properties('name', 'age')
# 插入一条新数据
user = User(1, 'Tom', 20)
DemoContext().users.insert_or_update(user, 'name', 'age')
# 更新一条已有数据
user = User(1, 'Jerry', 21)
DemoContext().users.insert_or_update(user, 'name', 'age')
```
在上面的示例代码中,创建了一个 User 类作为实体对象,包含 id、name 和 age 三个属性。然后创建了一个 DemoContext 类作为数据上下文对象,包含了一个 users 表示实体对象的集合,并指定 id 属性为主键,name 和 age 属性需要进行插入或更新操作。
使用 insert_or_update 方法时,先传入要插入或更新的实体对象 user,然后传入需要插入或更新的字段名,即 name 和 age。如果实体对象的主键值在数据表中不存在,则插入新数据;如果主键值已存在,则更新已有数据。
阅读全文