我刚开始在 C++(和 sql)中使用 sql conenctor。我需要从数据库中的对象中编写一堆头文件。(MariaDB 但如果它适用于所有 sql dbs 那就太好了)到目前为止我的解决方案是获取表名
res = stmt->executeQuery("SHOW TABLES from " + dbname);
其中 dbname 是用户输入的字符串。我将数据存储在一个名为 tablenames 的向量中以供以后使用,并按如下方式使用它:
for(std::string table :tablenames){
delete stmt; //freeing memory and attach new information to it
delete res;
std::string query;
query = "SELECT * from " + table + ";";
stmt = con->createStatement();
res = stmt ->executeQuery(query);
std::cout << query << "\n";
//using metadata for getting information or passing it to another method
}
它还没有准备好,但可以工作,但我从数据库中获取的信息比我需要的要多得多。我想从数据库中取出 1 行(或者可能只是表信息)并访问元数据以检索头文件所需的信息(如 columnlabel、columntypename 和可能的显示大小)。所以我的问题是,我的解决方案会产生大量流量,尤其是当我针对大型数据库运行它时。我发现了一些使用类似
WHERE id = 1
但我不能保证表中有一个 id (或其他东西)的解决方案。我希望你能帮助我找到更好的解决方案。