Rumah > pembangunan bahagian belakang > C++ > Bagaimanakah pustaka fungsi C++ melaksanakan pengurusan pangkalan data?

Bagaimanakah pustaka fungsi C++ melaksanakan pengurusan pangkalan data?

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Lepaskan: 2024-04-18 14:15:02
asal
511 orang telah melayarinya

Pustaka fungsi C++ boleh digunakan untuk pengurusan pangkalan data Ia menyediakan satu siri fungsi melalui fail pengepala <sqlite3.h> sesuai untuk menguruskan interaksi biasa dengan pangkalan data.

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

C++ Fungsi Perpustakaan untuk Pengurusan Pangkalan Data

Pustaka standard C++ menyediakan pelbagai fungsi untuk mengendalikan tugas biasa yang berkaitan dengan interaksi pangkalan data. Pustaka fungsi ini kebanyakannya datang daripada <sqlite3.h> fail pengepala.

Sambung ke pangkalan data

sqlite3 *db;
int rc = sqlite3_open("database.db", &db);
Salin selepas log masuk

Buat jadual

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

Masukkan data

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);
Salin selepas log masuk

Data pertanyaan

Transctionreee

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);
Salin selepas log masuk

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

pemprosesan Kes praktikal :Urus pangkalan data maklumat pelajar

#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;
}
Salin selepas log masuk

Menjalankan program ini mencipta jadual bernama "pelajar" dalam pangkalan data bernama "pelajar.db" dengan tiga lajur: id, nama dan umur. Ia juga memasukkan lima keping data ujian dan menanyakan pangkalan data untuk mendapatkan maklumat pelajar.

Atas ialah kandungan terperinci Bagaimanakah pustaka fungsi C++ melaksanakan pengurusan pangkalan data?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan