【问题标题】:Store class in sqlite database在 sqlite 数据库中存储类
【发布时间】: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)。
  • 是的,“序列化”是正确的术语。你看过对象关系映射库吗?

标签: c++ sqlite


【解决方案1】:

看起来您正在寻找一个 ORM(对象关系映射)库,例如Hiberlite

【讨论】:

    【解决方案2】:

    我觉得你应该看看MondoDB

    MongoDB 中的记录是一个文档,它是由字段和值对组成的数据结构。 MongoDB 文档类似于 JSON 对象。字段的值可能包括其他文档、数组和文档数组。

    这种方式非常快速且高度可扩展的解决方案

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-05-14
      • 2013-03-12
      • 2018-11-27
      • 1970-01-01
      • 2021-09-30
      • 2012-03-19
      相关资源
      最近更新 更多