在Qt编程中使用C++操作数据库

之前说过用JS操作数据库,这次说一下用C++操作数据库。

一个应用程序可能有内置的数据库,需要读取数据,下面来实践一下如何写代码。

假设在安装时数据库已经放在/usr/share/yourapp/db.sqlite,我们需要一个操作数据库的类。

#include <QAbstractListModel>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QString>


class StationModel : public QAbstractListModel
{
    StationModel(QObject *parent = 0);
    ~StationModel();
    Q_INVOKABLE void open_selected_database(const QString &db_name);
    Q_INVOKABLE void close_current_database();
private:
    QSqlDatabase db;
};

我们主要实现open_selected_database和close_current_database两个函数。

在函数中需要完成添加数据库和指定类型,指定数据库的路径,再打开数据库。

void StationModel::open_current_database(){
    db = QSqlDatabase::addDatabase("QSQLITE");
    QString db_name = "/usr/share/yourapp/db.sqlite";
    db.setDatabaseName(db_name);
    if(db.open()){
        ......
    }
}

 打开数据库之后就可以在if(db.open())的判断里面做数据库的读取操作。

接下来还需要完成关闭数据库的操作。

void StationModel::close_current_database(){
    db.close();
}

使用完数据库之后,要将数据库关闭,避免占用了数据库在其他地方不能使用。

这样就完成使用C++操作SQlite数据库了。

posted @ 2025-07-16 22:51  fishegg  阅读(17)  评论(0)    收藏  举报