QT5.5与MYSQL5.6数据库连接的具体方法与实现
由于毕设需要用到QT读取数据库中的数据,并将数据保存至数据库中。花了一天的时间,总算实现了从QT中读取数据库中的数据。网上相关资料很多,但是写得不是很全,中间出现了一些问题,解决起来比较麻烦。所以本文从MYSQL下载、安装,QT连接MYSQL尽可能写详细,若有不足,还请见谅。
1、QT5.5下载
本文使用的 windows32 QT5.5 版本为(qt-opensource-windows-x86-mingw492-5.5.10),可从我的百度云:https://pan.baidu.com/s/1XsVmgd3Qd-J0BHPVOtMVkA下载
若选用高版本,具体安装方法可自行百度。
2、MYSQL5.6下载
由于QT选用的Windows32位,所以MYSQL也应选择Windows32位版本为mysql-5.6.39-win32.zip。(若QT选择的为Windows64位,则MYSQL应选择Windows64位),
可从我的百度云:https://pan.baidu.com/s/1XsVmgd3Qd-J0BHPVOtMVkA下载。
若选用高版本,具体下载方法可自行百度。
3、MYSQL5.6安装
1)将mysql-5.6.39-win32.zip解压至D盘中的MYSQL SERVER,且重命名为mysql-5.6。解压修改后的结果如图1-1所示。
图1-1
2)修改my-default.ini,修改后如图1-2所示
图1-2
3)增加环境变量。右键我的电脑,点属性,点高级系统设置,点环境变量,在PATH中添加 ;D:\MYSQL SERVER\mysql-5.6\bin(分号不要忘了,根据自己的安装目录改写),点击确认就行。
4)在C盘中找到cmd.exe,并以管理员权限打开。分别执行以下指令:
d:
cd MYSQL SERVER\mysql-5.6\bin
mysqld -initalize -user=mysql -console
mysqld -install,输入该指令后会打印 Service successfully installed
net start mysql,输入该指令后会打印MySQL服务已经启动成功。至此MYSQL5.6已经安装成功,并且已运行。
4、MYSQL登陆与修改密码
1)在cmd.exe软件中,继续输入SQL相关指令:
mysql -u root -p,输入该指令后出现 Enter password: ,第一次登陆直接回车,进入mysql软件。如图1-3
图1-3
2)增加root的密码。
mysql> set password for root@localhost=password('88888888');
输入该指令后ront 的密码变为88888888。(在编写QT程序中需要用到用户名为root和密码为88888888)
mysql>exit
输入该指令后退出。
重新登陆,输入 mysql -u root -p,输入该指令后出现 Enter password: ,输入88888888。若输入密码不是88888888,则会出现报错,如图1-4所示
图1-4
3)添加测试表,在test库中添加student表,并添加一些数据。具体操作如图1-5所示,至此MYSQL部分已经全部完成。(注意是在test库中添加,对应QT应选择test;
图1-5
5、建立QT程序
1)将mysql-5.6文件lib目录下的libmysql.dll和libmysqld.dll复制到Qt5.5中的mingw493_32的bin文件下。如图1-6所示;
图1-6
2)新建项目,选择QT Console Application。命名项目名为sql_test;
在sql_test.pro文件中添加 QT +=sql
main.cpp改为
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QtDebug>
void connect_mysql()
{
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1"); //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost)
db.setPort(); //连接数据库端口号,与设置一致
db.setDatabaseName("test"); //连接数据库名,与设置一致
db.setUserName("root"); //数据库用户名,与设置一致
db.setPassword(""); //数据库密码,与设置一致
db.open();
if(!db.open())
{
qDebug()<<"不能连接"<<"connect to mysql error"<<db.lastError().text();
return ;
}
else
{
qDebug()<<"连接成功"<<"connect to mysql OK";
}
QSqlQuery query(db);
query.exec("select * from student");
while(query.next()){
qDebug()<<query.value("name").toString();
}
}
int main(int argc,char *argv[])
{
QCoreApplication a(argc,argv);
connect_mysql();
return a.exec();
}
3)测试结果
图1-7
结果表明,QT已经成功读取MYSQL中的student表。
可以在 https://github.com/xtuwang/Qt_Project/tree/xtuwang-patch-1中下载该项目。
QT5.5与MYSQL5.6数据库连接的具体方法与实现的更多相关文章
- 【Qt】Qt5.12连接MySQl5.7(亲自测试成功)
目录 00. 目录 01. Qt5.12连接MySQL5.7测试代码 02. Qt5.12连接MySQL5.7问题描述 03. 解决办法 04. 结果测试 05. 打赏 00. 目录 01. Qt5. ...
- java配置数据库连接池的方法步骤
java配置数据库连接池的方法步骤 java配置数据库连接池的方法步骤,需要的朋友可以参考一下 先来了解下什么是数据库连接池数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vecto ...
- mysql5.7忘记密码修改方法
mysql5.7忘记密码修改方法 mysql是开发中最常用的关系数据库之一.一般在安装数据库到时候会自定义root密码,有时候会忘记该密码,这时候需要对数据库进行密码修改. 一.windows下更改m ...
- 编译Qt5.0连接MySql5.5数据库的驱动(5.0版本的编译,我记得5.2开始自带了)
第一步 1.准备好Mysql数据库安装文件,Qt5.0完整的离线安装包,以及Qt5.0的完整的源代码.安装好程序,假设Mysql的安装路径为:C:\MySQL5.5,Qt5.0的安装路径:C:\Qt\ ...
- 【Qt】Qt5.12编译MySQl5.7驱动(亲自测试成功)
目录 00. 目录 01. 安装Qt5.12 02. 打开MySQL源码项目 03. 编译MySQL驱动代码 04. 修改mysql.pro文件 05. 编译之后得到对应的库 06. 拷贝动态库到指定 ...
- springboot 使用c3p0数据库连接池的方法
使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了.所以使用c3p0连接池吧. 引入的maven依赖: <dependenc ...
- 在centos上安装mysql5.7的三种方法
带OS信息的是已编译的二进制文件,不带OS信息的是源码包 mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz 二进制包 mysql-5.5.51.tar.gz 源码包 ...
- Mysql5.6二进制包安装方法
1.Download MySQL Community Server 访问mysql官方网站转到下载页https://dev.mysql.com/downloads/mysql/5.6.html#dow ...
- Apache2.2.16+PHP5.3.3+MySQL5.1.49的配置方法
第一步:下载安装的文件 1. MySQL:下载地址mysql-5.1.49-win32.msi: 2. Apache: 下载地址httpd-2.2.16-win32-x86-openssl-0.9.8 ...
随机推荐
- AIX分页(交换)空间的监控
1.分页和交换 这两个概念,很多人混为一回事儿,两者虽然有共性,但也有些差别.分页是进程的部分内容在RAM和磁盘的分页空间间移动,而交换是整个进程在RAM和磁盘的分页空间间移动,在将进程移到磁盘分页空 ...
- tcpdump抓包工具的使用
个人原创,转载请注明,否则依法追究法律责任 2018-02-28 16:01:26 tcpdump 倾倒网络传输数据,直接启动tcpdump将监视第一个网络接口上所有流过的数据包. 1 不接任何参数 ...
- 原生js+canvas实现滑动拼图验证码
上图为网易云盾的滑动拼图验证码,其应该有一个专门的图片库,裁剪的位置是固定的.我的想法是,随机生成图片,随机生成位置,再用canvas裁剪出滑块和背景图.下面介绍具体步骤. 首先随便找一张图片渲染到c ...
- 基于hi-nginx的web开发(python篇)——动态路由和请求方法
hi.py的提供的路由装饰器接受两个参数,第一个参数指定动态路由的正则模式,第二个参数指定同意的http请求方法列表. 比如: @app.route(r"^/client/?$", ...
- Spring AOP: 织入的顺序
spring AOP 采用和 AspectJ 一样的优先顺序来织入增强处理:在进入连接点时,高优先级的增强处理将先被织入:在退出连接点时,高优先级的增强处理会后被织入. 当不同的切面里的两个增强处理需 ...
- 剑指Kubernetes 揭秘腾讯云的PaaS技术选型策略
1.前言 Kubernetes 很火,一大批互联网公司早已领先一步,搭建起专有的 PaaS平台,传统企业们看到的 Kubernetes的趋势,亦不甘落后,在试水的道上一路狂奔-- 虽然,Kuberne ...
- 【Python】 更棒的Excel操作模块xlwings
[xlwings] 说到Python操作Excel,有好多模块都可以支持这个工作.比如最底层的win32模块不仅可以操作Excel,还可以操作其他一众windows的软件. 其他的比较熟悉的有xlrd ...
- C语言的字符串操作函数小结
一.strcat()函数 char *strcat(char *dest, const char *src) 把 src 所指向的字符串追加到 dest 所指向的字符串的结尾.它返回一个指向字符串de ...
- 大数据hadoop面试题2018年最新版(美团)
还在用着以前的大数据Hadoop面试题去美团面试吗?互联网发展迅速的今天,如果不及时更新自己的技术库那如何才能在众多的竞争者中脱颖而出呢? 奉行着"吃喝玩乐全都有"和"美 ...
- JavaScript 通过队列实现异步流控制
知乎上面看到一个面试题. 某个应用模块由文本框 input,以及按钮 A,按钮 B 组成.点击按钮 A,会向地址 urlA 发出一个 ajax 请求,并将返回的字符串填充到 input 中(覆盖 in ...