通过在Sqlite3数据库C ++中获取表来创建Object

时间:2015-11-19 20:34:28

标签: c++ database dictionary sqlite

我正在开发一个项目,该项目从我创建的sqlite3数据库中获取数据,以实例化与表(table1,table2,table3)相关的每个记录对应的对象。

让我们说,table1是具有id和name记录的艺术家。我已经使用文本文件填充了艺术家表,现在我需要创建一个对象并进行相应的初始化。我也应该实现一个地图来枚举“艺术家”类的每个对象。

我甚至无法开始如何检索表格中的记录,以便我可以相应地映射它们。

我们的教授给了我们一个示例代码如何遍历艺术家表但我不确定如何循环和映射数据

  // loop each record in artist table
   sqlite3_stmt* statement;
   sqlite3_prepare_v2(db, "SELECT * FROM artist", -1, &statement, NULL);
   while (sqlite3_step(statement) == SQLITE_ROW) {                 // get a record   
     printf(" artist id=%u ", sqlite3_column_int(statement, 0));      // its first field
     printf(" artist name=%s \n", sqlite3_column_text(statement, 1)); // its second field
   }
   sqlite3_finalize(statement);

非常感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:0)

你已经有循环迭代表,只需创建一个映射(通过使用它来自C ++标准库)来存储表数据:

 map<int, string> artists;
 sqlite3_stmt* statement;
 sqlite3_prepare_v2(db, "SELECT * FROM artist", -1, &statement, NULL);
 while (sqlite3_step(statement) == SQLITE_ROW) 
 {
     artists[sqlite3_column_int(statement, 0)] = sqlite3_column_text(statement, 1));
 }
 sqlite3_finalize(statement);