赞
踩
第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
编译完成后会在Qt同文件下生成Plugins文件夹
将生成qsqlmysql.dll和qsqlmysqld.dll 拷贝至Qt所对应mingw_64的sqldrivers。
拷贝mysql的动态库(mysql中有) 将 mysql/lib 中的 libmysql.dll(动态库)拷贝至Qt所对应编译器的bin目录下。
新建一个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 运行,成功后在下方的结果输出框中有小字提示“数据库连接成功”。
- //查询学生数据库
- 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目录下。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。