Qt配置Mysql8,Windows环境
Qt配置mysql8
本文提供Qt配置Mysql的所需文件如下:
链接:https://pan.baidu.com/s/1O2ZIcF4bkN7enU6Kg2e34A?pwd=6k9y
提取码:6k9y
libmysql.dll 和libmysql.lib是QT所需的动态和静态链接库;qsqlmysql.dll 和qsqlmysql.dll.debug是Qt所需的mysql驱动
1.设置Qt的MySQL 驱动
(1)将qsqlmysql.dll 和qsqlmysql.dll.debug放入D:\Tool\Qt5.12\5.14.2\mingw73_64\plugins\sqldrivers目录下(参考你自己Qt安装目录)如下图所示:
(2)Qt:测试已安装的驱动:
首先在对应Qt项目pro文件中设置Qt += sql 如下:
QT += core gui sql
运行显示
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QtSql/QSqlDatabase"
#include "QtSql/QSqlQuery"
#include "QString"
#include "QMessageBox"
#include "QDebug"
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 输出可用数据库
qDebug()<<"available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug()<<driver;
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_actionxinjian_triggered()
{
}
表明安装驱动正确!!!
2.设置Qt的MySQL 动态和静态链接库
libmysql.dll 和libmysql.lib放入D:\Tool\Qt5.12\5.14.2\mingw73_64\bin目录下
3.测试成功!!!
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QtSql/QSqlDatabase"
#include "QtSql/QSqlQuery"
#include "QString"
#include "QMessageBox"
#include "QDebug"
MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{
ui->setupUi(this);
// 输出可用数据库
qDebug()<<"available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug()<<driver;
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//首次需要添加数据库驱动(必须在main程序中),第二次只需QSqlDatabase::database("QMYSQL")(其他文件中,防止多次使用);
db.setHostName("127.0.0.1");//设置ip
db.setPort(3306);//端口号
db.setDatabaseName("detect");//数据库名称
db.setUserName("root");//用户名
db.setPassword("root12345678");//密码
QSqlQuery query = QSqlQuery(db);//db对象
bool ok = db.open();//连接数据库
if (db.open()){
QMessageBox::information(this, "infor", "success");//成功
qDebug()<<"success!!!";
}
else {
QMessageBox::information(this, "infor", "open failed");
qDebug()<<"error open database because";//失败
}
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_actionxinjian_triggered()
{
}
测试结果