ubuntu

Ubuntu C++如何使用SQLite数据库

小樊
74
2025-04-30 11:46:11
栏目: 云计算

在Ubuntu上使用C++操作SQLite数据库,你需要安装SQLite的开发库,并使用适当的API来编写代码。以下是一些基本步骤来帮助你在Ubuntu上使用C++和SQLite:

  1. 安装SQLite3库: 打开终端,运行以下命令来安装SQLite3的开发库:

    sudo apt-get update
    sudo apt-get install libsqlite3-dev
    
  2. 编写C++代码: 创建一个C++源文件,例如main.cpp,并包含SQLite的头文件。以下是一个简单的示例,展示了如何打开一个数据库,创建一个表,插入一些数据,然后查询这些数据。

    #include <iostream>
    #include <sqlite3.h>
    
    // 回调函数,用于处理查询结果
    static int callback(void *data, int argc, char **argv, char **azColName) {
        for (int i = 0; i < argc; i++) {
            std::cout << azColName[i] << " = " << (argv[i] ? argv[i] : "NULL") << std::endl;
        }
        std::cout << std::endl;
        return 0;
    }
    
    int main() {
        sqlite3 *db;
        char *err_msg = 0;
        int rc;
    
        // 打开数据库
        rc = sqlite3_open("test.db", &db);
    
        if (rc != SQLITE_OK) {
            std::cerr << "Cannot open database: " << sqlite3_errmsg(db) << std::endl;
            return 1;
        } else {
            std::cout << "Opened database successfully" << std::endl;
        }
    
        // 创建一个表
        char *sql = "CREATE TABLE IF NOT EXISTS COMPANY("
                     "ID INT PRIMARY KEY NOT NULL,"
                     "NAME TEXT NOT NULL,"
                     "AGE INT NOT NULL,"
                     "ADDRESS CHAR(50),"
                     "SALARY REAL );";
    
        rc = sqlite3_exec(db, sql, callback, 0, &err_msg);
    
        if (rc != SQLITE_OK ) {
            std::cerr << "SQL error: " << err_msg << std::endl;
            sqlite3_free(err_msg);
            return 1;
        } else {
            std::cout << "Table created successfully" << std::endl;
        }
    
        // 插入数据
        sql = "INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY) "
              "VALUES (1, 'Paul', 32, 'California', 20000.00 );";
    
        rc = sqlite3_exec(db, sql, callback, 0, &err_msg);
    
        if (rc != SQLITE_OK ) {
            std::cerr << "SQL error: " << err_msg << std::endl;
            sqlite3_free(err_msg);
            return 1;
        } else {
            std::cout << "Records created successfully" << std::endl;
        }
    
        // 查询数据
        sql = "SELECT * FROM COMPANY;";
    
        rc = sqlite3_exec(db, sql, callback, 0, &err_msg);
    
        if (rc != SQLITE_OK ) {
            std::cerr << "SQL error: " << err_msg << std::endl;
            sqlite3_free(err_msg);
            return 1;
        }
    
        // 关闭数据库
        sqlite3_close(db);
        return 0;
    }
    
  3. 编译C++代码: 使用g++编译器编译你的C++代码,并链接SQLite3库。在终端中运行以下命令:

    g++ main.cpp -o myapp -lsqlite3
    
  4. 运行程序: 编译成功后,运行生成的可执行文件:

    ./myapp
    

这将创建一个名为test.db的SQLite数据库文件,并在其中执行一些基本的数据库操作。记得在实际应用中处理错误和异常,并根据需要调整代码以满足你的需求。

0
看了该问题的人还看了