1

我刚开始在 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 (或其他东西)的解决方案。我希望你能帮助我找到更好的解决方案。

4

1 回答 1

0

使用限制关键字。"select * from table LIMIT 1" 这将按照它说的做,并将结果限制为一个。

于 2019-01-17T17:49:15.900 回答