91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

C++ table與數據庫的交互方式

c++
小樊
82
2024-09-07 05:05:52
欄目: 編程語言

在C++中,與數據庫進行交互通常需要使用數據庫連接庫。這些庫允許你在C++程序中執行SQL查詢并處理結果。以下是一些常見的數據庫連接庫和交互方式:

  1. MySQL: 使用MySQL Connector/C++庫進行交互。
#include<iostream>
#include<mysqlx/xdevapi.h>

int main() {
    const std::string url = "mysqlx://user:password@localhost";
    mysqlx::Session session(url);
    mysqlx::Schema schema = session.getSchema("test");
    mysqlx::Table table = schema.getTable("sample_table");

    // 插入數據
    table.insert("name", "age")
        .values("Alice", 25)
        .execute();

    // 查詢數據
    mysqlx::RowResult result = table.select().execute();
    for (const auto &row : result) {
        std::cout<< row[0].get<std::string>() << ", "<< row[1].get<int>()<< std::endl;
    }

    return 0;
}
  1. PostgreSQL: 使用libpq庫進行交互。
#include<iostream>
#include <libpq-fe.h>

int main() {
    const char *conninfo = "dbname=test user=postgres password=secret hostaddr=127.0.0.1 port=5432";
    PGconn *conn = PQconnectdb(conninfo);

    if (PQstatus(conn) != CONNECTION_OK) {
        std::cerr << "Connection to database failed: " << PQerrorMessage(conn)<< std::endl;
        PQfinish(conn);
        return 1;
    }

    // 執行查詢
    PGresult *res = PQexec(conn, "SELECT name, age FROM sample_table");
    if (PQresultStatus(res) != PGRES_TUPLES_OK) {
        std::cerr << "Query failed: " << PQerrorMessage(conn)<< std::endl;
        PQclear(res);
        PQfinish(conn);
        return 1;
    }

    // 處理結果
    int rows = PQntuples(res);
    for (int i = 0; i< rows; ++i) {
        std::cout << PQgetvalue(res, i, 0) << ", " << PQgetvalue(res, i, 1)<< std::endl;
    }

    PQclear(res);
    PQfinish(conn);
    return 0;
}
  1. SQLite: 使用SQLite C++庫(如sqlite_modern_cpp)進行交互。
#include<iostream>
#include<sqlite_modern_cpp.h>

int main() {
    sqlite::database db("test.db");

    // 創建表
    db << "CREATE TABLE IF NOT EXISTS sample_table (name TEXT, age INTEGER);";

    // 插入數據
    db << "INSERT INTO sample_table (name, age) VALUES (?, ?);"
       << "Alice"
       << 25;

    // 查詢數據
    db << "SELECT name, age FROM sample_table;" >> [&](const std::string &name, int age) {
        std::cout<< name << ", "<< age<< std::endl;
    };

    return 0;
}

請注意,這些示例僅展示了基本的數據庫操作。實際應用中,你可能需要處理更復雜的查詢和事務。同時,確保正確處理錯誤和異常。

0
平邑县| 镇远县| 嫩江县| 黄骅市| 九江县| 雷州市| 夹江县| 贵州省| 延安市| 泾源县| 武定县| 吴堡县| 梅州市| 惠东县| 灌阳县| 响水县| 泾川县| 阳新县| 民和| 黄平县| 汝州市| 盐山县| 封丘县| 陵川县| 汶上县| 彭州市| 手游| 扬州市| 玉林市| 镇坪县| 天镇县| 清丰县| 武宣县| 绿春县| 芦山县| 罗甸县| 华亭县| 沙湾县| 甘泉县| 宝兴县| 东至县|