#小白来瞅瞅#QT5.12 QSQLITE 虐心入门使用攻略


在接触QT一段时间后,开始尝试使用QT的自带数据库来写程序
小白不要纠结使用MYSQL还是SQLITE
反正我是从MYSQL的大坑不得步爬到QT自带的SQLITE的,mysql配置起来太麻烦了
工具:QT5.12 x86
↓ ↓ ↓ ↓ 话不多说看代码 ↓ ↓ ↓ ↓

#ifndef WIDGET_H
#define WIDGET_H


#include 
#include "sqldata.h"


namespace Ui {
class Widget;
}


class Widget : public QWidget
{
    Q_OBJECT


public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();


private slots:
    void on_btn_add_clicked();


    void on_btn_del_clicked();


    void on_btn_update_clicked();


    void on_btn_find_clicked();


    void on_btn_close_clicked();


private:
    Ui::Widget *ui;
    SQLData *mdatabase;
};


#endif // WIDGET_H

#include 
#include 
#include 
#include 
#include 


struct Stu{
    char name[50];
    int id;
};


class SQLData:public QObject
{
    Q_OBJECT


public:
    SQLData();`在这里插入代码片`
    ~SQLData();
    void initSQLDatabase();//初始化数据库
    void createSQLDatatable();//创建表
    void addSQLInfo(Stu &stu);//增
    void removeSQLInfo(Stu &stu);//删
    void modifySQLInfo(Stu &stu);//改
    QString searchSQLInfo(int id);//查
    void close();
private:
    QSqlDatabase database;
    QSqlQuery sql_query;
};

#endif // SQLDATA_H


#include "sqldata.h"


SQLData::SQLData():QObject()
{
}
SQLData::~SQLData()
{
}


//初始化数据库
void SQLData::initSQLDatabase()
{
    //1. 创建一个SQLITE数据库
    database = QSqlDatabase::addDatabase("QSQLITE");
    //2. 设置数据的参数
    database.setDatabaseName("stu.db");
    database.setUserName("root");
    database.setPassword("123456");
    //3. 打开数据库
    if(!database.open())
    {
        qDebug()<

#include "widget.h"
#include "ui_widget.h"


Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
    mdatabase = new SQLData;
    mdatabase->initSQLDatabase();
    mdatabase->createSQLDatatable();
}


Widget::~Widget()
{
    delete ui;
}


void Widget::on_btn_add_clicked()
{
    Stu stu;
    strcpy(stu.name,ui->line_name->text().toStdString().c_str());
    stu.id = ui->line_id->text().toInt();
    mdatabase->addSQLInfo(stu);
}


void Widget::on_btn_del_clicked()
{
    Stu stu;
    strcpy(stu.name,ui->line_name->text().toStdString().c_str());
    stu.id = ui->line_id->text().toInt();
    mdatabase->removeSQLInfo(stu);
}


void Widget::on_btn_update_clicked()
{
    Stu stu;
    strcpy(stu.name,ui->line_name->text().toStdString().c_str());
    stu.id = ui->line_id->text().toInt();
    mdatabase->modifySQLInfo(stu);
}


void Widget::on_btn_find_clicked()
{
    int id = ui->line_id->text().toInt();
    QString res =  mdatabase->searchSQLInfo(id);
    ui->line_name->setText(res);
}


void Widget::on_btn_close_clicked()
{
    mdatabase->close();
}


以上就是入门代码了,慢慢琢磨透了就勉强能借点 “数据库” 的法力了。

你可能感兴趣的:(#小白来瞅瞅#QT5.12 QSQLITE 虐心入门使用攻略)