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 ...
随机推荐
- Java Swing应用程序 JComboBox下拉框联动查询
在web项目中,通过下拉框.JQuery和ajax可以实现下拉框联动查询. 譬如说,当你查询某个地方时,页面上有:省份:<下拉框省份> 市区:<下拉框市区> 县乡:<下拉 ...
- 如何在WordPress文本小工具中使用PHP
只需添加以下代码片段到你当前主题的functions.php文件 add_filter('widget_text', 'php_text', 99); function php_text($text) ...
- c# 根据唯一码,存缓存 实现12小时内 阅读量+1
需求:某一个详细页面需要实现用户 12小时内阅读量+1, 实现思路;得到一个唯一码的机器码,不管是否用户登录了 都有这个码,然后存到缓存里面 最后判断时间+12小时 是否超过当前时间 string ...
- python全栈开发-Day6 字符编码
python全栈开发-Day6 字符编码 一 .了解字符编码的知识储备 一 .计算机基础知识 二 .文本编辑器存取文件的原理(nodepad++,pycharm,word) #1.打开编辑器就打开了启 ...
- c++趣味之shared_ptr额外好处
shared_ptr(sp)额外好处是什么?即使被转为基类,析构函数也可以正常执行. 已知两个类 class foo{}; class bar:foo{public:~bar(){}}; 先来看不用s ...
- jsp的四种范围
jsp有四种范围,可以说是四种对象,这四种对象对应不同的作用范围,所以我们说jsp中的四种范围,这四种范围作用域由大到小分别是page>request>session>applica ...
- python3把txt文件转换为csv文件
#!/usr/bin/python# -*- coding: UTF-8 -*-import csvwith open('file.csv','a',newline='') as csvfile: s ...
- 深入理解Session与Cookie(一)
Session,Cookie简介: Session和Cookie的作用都是为了保持用户与后端服务器的交互状态,但是各自都有缺陷: Cookie: 随着Cookie的个数的增多和访问量的增加,它占用的网 ...
- MSIL实用指南-装箱拆箱
本篇讲述怎样装箱拆箱.装箱和拆箱都是针对值类型而言的,装箱的性能开销远比拆箱的性能开销大. 装箱装箱指令是Box.使用格式是 ILGenerator.Emit(OpCodes.Box,<值类型& ...
- lua_cocos精灵的不断闪动
一. 刚开始使用 local blink = cc.Blink:create(1, 10) sprite:runAction(blink) ...