行 API
头文件
libraries/mcdatabase/include/mc/database/row.h
功能点
- row 类(单行数据操作)
- 行数据读取与设置
- 行保存(save、non_persist_save)
- 行删除(delete_row)
- 行比较(operator==)
- 数据字典管理(m_data、m_new_data)
- rowid 管理
概述
row 类表示单个数据库行,提供读取、修改和删除数据的方法。
类: row
构造函数
row(table& tbl, const mc::dict& values, bool ignore_unknown_col = false);
用给定值创建行实例。
析构函数
~row();
方法
| 方法 | 描述 |
|---|---|
void save(bool flush = true) |
将更改保存到数据库 |
void non_persist_save(bool flush = true) |
不持久化保存 |
void delete_row() |
从数据库删除行 |
void set(std::string_view col_name, const mc::variant& new_value) |
设置列值 |
mc::variant get(std::string_view col_name) |
获取列值 |
bool operator==(const row& other) |
比较两行 |
私有成员
m_table: 父表引用m_data: 当前行数据m_new_data: 待更改数据m_rowid: 已存在行的可选 rowid
使用示例
// 创建新行
mc::database::row new_row(my_table, mc::dict()
("name", "John")
("email", "john@example.com")
);
new_row.save();
// 修改已有行
mc::database::row existing_row(my_table, mc::dict()
("id", 1)
("name", "John")
);
existing_row.set("name", "Jane");
existing_row.save();
// 获取值
auto name = existing_row.get("name").as_string();
// 删除行
existing_row.delete_row();