Heim >Backend-Entwicklung >C++ >Wie führt die C++-Funktionsbibliothek die Datenbankverwaltung durch?

Wie führt die C++-Funktionsbibliothek die Datenbankverwaltung durch?

WBOY
WBOYOriginal
2024-04-18 14:15:02376Durchsuche

Die C++-Funktionsbibliothek kann für die Datenbankverwaltung verwendet werden. Sie bietet eine Reihe von Funktionen zur Unterstützung von Vorgängen wie Verbindung, Tabellenerstellung, Datenabfrage und Transaktionsverarbeitung geeignet für die Verwaltung allgemeiner Interaktionen mit der Datenbankaufgabe.

C++ 函数库如何进行数据库管理?

C++-Funktionsbibliothek für die Datenbankverwaltung

Die C++-Standardbibliothek bietet eine breite Palette von Funktionen zur Bearbeitung allgemeiner Aufgaben im Zusammenhang mit der Datenbankinteraktion. Diese Funktionsbibliotheken stammen hauptsächlich aus 9fab03fbd532df507021ddb732530d64 Header-Dateien.

Mit Datenbank verbinden

sqlite3 *db;
int rc = sqlite3_open("database.db", &db);

Tabelle erstellen

char *zErrMsg = 0;
int rc = sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS mytable (id INTEGER PRIMARY KEY, name TEXT)", NULL, 0, &zErrMsg);

Daten einfügen

sqlite3_stmt *stmt;
sqlite3_prepare_v2(db, "INSERT INTO mytable (name) VALUES (?)", -1, &stmt, NULL);
sqlite3_bind_text(stmt, 1, "John Doe", -1, SQLITE_STATIC);
sqlite3_step(stmt);
sqlite3_finalize(stmt);

Daten abfragen

sqlite3_stmt *stmt;
sqlite3_prepare_v2(db, "SELECT name FROM mytable WHERE id=?", -1, &stmt, NULL);
sqlite3_bind_int(stmt, 1, 1);
while (sqlite3_step(stmt) == SQLITE_ROW) {
    printf("%s\n", sqlite3_column_text(stmt, 0));
}
sqlite3_finalize(stmt);

Transaktion. Verarbeitung

sqlite3_exec(db, "BEGIN TRANSACTION");
// 执行多条查询
sqlite3_exec(db, "COMMIT");

Praktischer Fall: Studenteninformationsdatenbank verwalten

#include <iostream>
#include <sqlite3.h>

using namespace std;

int main() {
    sqlite3 *db;
    int rc = sqlite3_open("students.db", &db);
    if (rc) {
        cerr << "Error opening database: " << sqlite3_errmsg(db) << endl;
        return -1;
    }

    // 创建表
    char *zErrMsg = 0;
    rc = sqlite3_exec(db, "CREATE TABLE IF NOT EXISTS students (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)", NULL, 0, &zErrMsg);
    if (rc) {
        cerr << "Error creating table: " << zErrMsg << endl;
        sqlite3_free(zErrMsg);
        sqlite3_close(db);
        return -1;
    }

    // 插入数据
    sqlite3_stmt *stmt;
    rc = sqlite3_prepare_v2(db, "INSERT INTO students (name, age) VALUES (?, ?)", -1, &stmt, NULL);
    if (rc) {
        cerr << "Error preparing insert statement: " << sqlite3_errmsg(db) << endl;
        sqlite3_close(db);
        return -1;
    }
    
    // 插入多条数据
    for (int i = 0; i < 5; i++) {
        sqlite3_bind_text(stmt, 1, "Student " + to_string(i), -1, SQLITE_STATIC);
        sqlite3_bind_int(stmt, 2, 20 + i);
        sqlite3_step(stmt);
        sqlite3_reset(stmt);
    }
    sqlite3_finalize(stmt);

    // 查询数据
    stmt = nullptr;
    rc = sqlite3_prepare_v2(db, "SELECT * FROM students", -1, &stmt, NULL);
    if (rc) {
        cerr << "Error preparing select statement: " << sqlite3_errmsg(db) << endl;
        sqlite3_close(db);
        return -1;
    }
    
    while (sqlite3_step(stmt) == SQLITE_ROW) {
        int id = sqlite3_column_int(stmt, 0);
        const char *name = sqlite3_column_text(stmt, 1);
        int age = sqlite3_column_int(stmt, 2);
        cout << "Record " << id << ": Name = " << name << ", Age = " << age << endl;
    }
    sqlite3_finalize(stmt);

    sqlite3_close(db);
    return 0;
}

Beim Ausführen dieses Programms wird eine Tabelle mit dem Namen „students“ in einer Datenbank mit dem Namen „students.db“ mit drei Spalten erstellt: ID, Name und Alter. Außerdem werden fünf Testdatenelemente eingefügt und die Datenbank abgefragt, um Schülerinformationen abzurufen.

Das obige ist der detaillierte Inhalt vonWie führt die C++-Funktionsbibliothek die Datenbankverwaltung durch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn