qt5数据库驱动(MySQL)编译及其使用

1.编译MySQL驱动

#安装Mysql开发工具
sudo apt-get install libmysqlclient-dev libqt5sql5-mysql

Qt安装路径为/home/lzy/Downloads/qt

进入源码路径/home/lzy/Downloads/qt/5.12.12/Src/qtbase/src/plugins/sqldrivers/mysql

修改mysql.pro文件

TARGET = qsqlmysql

HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
#注释三行
#QMAKE_USE += mysql

OTHER_FILES += mysql.json

PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
#新增三行
INCLUDEPATH+=/usr/include/mysql
LIBS+=-L/usr/lib/x86_64-linux-gnu -lmysqlclient
#编译输出目录
DESTDIR = ./lib

进入上一级目录,修改qsqldriverbase.pri文件

QT  = core core-private sql-private

# For QMAKE_USE in the parent projects.
#修改这一行
#include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)

PLUGIN_TYPE = sqldrivers
load(qt_plugin)

DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
cd mysql
/home/lzy/Downloads/qt/5.12.12/gcc_64/bin/qmake
make

libqsqlmysql.so复制至/home/lzy/Downloads/qt/5.12.12/gcc_64/plugins/sqldrivers

2.数据库读写操作

头文件:

#ifndef SQL_MYWIDGET_H
#define SQL_MYWIDGET_H

#include <QWidget>
#include <QSqlDatabase>
#include <QMessageBox>
#include <QSqlQuery>
#include <QDebug>


QT_BEGIN_NAMESPACE
namespace Ui {
   
    class MyWidget; }
QT_END_NAMESPACE

class MyWidget : public QWidget {
   
   
Q_OBJECT

public:
    explicit MyWidget(QWidget *parent = nullptr);

    ~MyWidget() override;

private:
    Ui::MyWidget *ui;

    QSqlDatabase db;

private slots:
    void processInsert();
    void processQuery();
};


#endif //SQL_MYWIDGET_H

实现类:

#include "MyWidget.h"
#include "ui_MyWidget.h"


MyWidget::MyWidget(QWidget *parent) : QWidget(parent), ui(new Ui::MyWidget) {
   
   
    ui->setupUi(this);
    db = QSqlDatabase::addDatabase("QMYSQL");
    db.setDatabaseName("test");
    db.setHostName("127.0.0.1");
    db.setPort(3307);
    db.setUserName("root");
    db.setPassword("123456");
    if(db.open()){
   
   
        QMessageBox::information(this,"提示","MySQL连接成功");
    }else{
   
   
        QMessageBox::information(this,"提示","MySQL连接失败");
    }

    connect(this->ui->insertButton,&QPushButton::clicked
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黎汝聪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值