Heim > Backend-Entwicklung > C++ > Hauptteil

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

WBOY
Freigeben: 2024-04-18 14:15:02
Original
342 Leute haben es durchsucht

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 <sqlite3.h> Header-Dateien.

Mit Datenbank verbinden

sqlite3 *db;
int rc = sqlite3_open("database.db", &db);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

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);
Nach dem Login kopieren

Transaktion. Verarbeitung

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

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;
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!