【发布时间】:2022-02-02 11:19:32
【问题描述】:
我试图弄清楚如何将类对象存储在 SQLite 数据库中以用于 c++ 项目。
根据我在网上学到的知识,我需要将对象存储在 SQLite 表的 blob 字段中。您需要采取哪些步骤来执行此操作?我相信你必须序列化要插入数据库的对象。
例如,我正在尝试将程序从使用数组转换为数据库,其中每个数组[index] 都是一个类对象。
目前正在使用:
public class Example
{
private int x;
Example(int a)
{
x=a;
}
}
main()
{
Example array[10];
for(int i=0; i<10; i++)
{
array[i] = new Example(i);
}
}
与我想要的相似:
public class Example
{
private int x;
Example(int a)
{
x=a;
}
}
main()
{
sqlite3 *db;
int rc;
char *sql;
rc = sqlite3_open("test.db", &db);
for(int i=0; i<10; i++)
{
sql = "INSERT INTO INFORMATION(ID,DATA) VALUES ('i', Example(i));"
rc = sqlite3_exec(db, sql, notused, notused, notused);
}
}
这可能吗?或者是否有类似的东西可以将对象存储在 sqlite 数据库中?
【问题讨论】:
-
我建议您将类的成员作为单独的列存储在数据库中。类可以是一行。注意包含指针的数据成员,因为指针不能很好地从数据库中存储和检索(例如 std::vector 或 std::string)。
-
是的,“序列化”是正确的术语。你看过对象关系映射库吗?