注意.确保Qt和MySql的版本都是32位,或者64位,否则极大概率会出现编译错误。
1、编译mysql驱动(用Qt打开mysql.pro文件)
第6行左右,在QMAKE_USE += mysql 前面加上# ,变为#QMAKE_USE += mysql。
win32:LIBS += -LD:/mysql-8.0.25-winx64/lib -llibmysql(自己mysql相应文件的路径)
INCLUDEPATH += D:/mysql-8.0.25-winx64/include
DEPENDPATH += D:/mysql-8.0.25-winx64/include
2、拷贝文件
编译完成后会在Qt同文件下生成Plugins文件夹
将生成qsqlmysql.dll和qsqlmysqld.dll 拷贝至Qt所对应mingw_64的sqldrivers。
拷贝mysql的动态库(mysql中有) 将 mysql/lib 中的 libmysql.dll(动态库)拷贝至Qt所对应编译器的bin目录下。
3、连接MySql
新建一个Qt项目 记得选择mingw_64的编译器,会在新建时提示你选。其他默认就好在.pro文件头部添加 QT += sql。
在main.cpp中添加如下代码
#include "mainwindow.h"
#include <QApplication>
#include<QSqlDatabase>
#include<QSqlError>
#include<QSqlQuery>
#include<QDebug>
bool createConnection()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("mydb20");
db.setUserName("root");
db.setPassword("5635947");
bool isopen=db.open();
if(isopen)
{
qDebug()<<"数据库连接成功";
}
else
{
qDebug()<<"数据库连接失败";
}
Ctrl + r 运行,成功后在下方的结果输出框中有小字提示“数据库连接成功”。
4.创建学生数据库
5.查询数据库
//查询学生数据库
QSqlQuery sq("select * from student");
qDebug()<<"id name gender address";
while(sq.next())
{
//字符串转换
int sid=sq.value(0).toInt();
QString strname=sq.value(1).toString();
QString strgender=sq.value(2).toString();
QString straddress=sq.value(3).toString();
//输出
qDebug()<<QString("%1 %2 %3 %4").arg(sid).arg(strname).arg(strgender).arg(straddress);
}
//关闭数据库
db.close();
查询结果
总结:
1、Qt中没有自带的mysql数据库插件 qsqlmysql.dl 与 qsqlmysql.dlld,需要去mysql.pro文件中自行编译。
2、需要把mysql动态库拷贝至Qt编译器的bin目录下。