由于毕设需要用到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数据库连接的具体方法与实现的更多相关文章

  1. 【Qt】Qt5.12连接MySQl5.7(亲自测试成功)

    目录 00. 目录 01. Qt5.12连接MySQL5.7测试代码 02. Qt5.12连接MySQL5.7问题描述 03. 解决办法 04. 结果测试 05. 打赏 00. 目录 01. Qt5. ...

  2. java配置数据库连接池的方法步骤

    java配置数据库连接池的方法步骤 java配置数据库连接池的方法步骤,需要的朋友可以参考一下   先来了解下什么是数据库连接池数据库连接池技术的思想非常简单,将数据库连接作为对象存储在一个Vecto ...

  3. mysql5.7忘记密码修改方法

    mysql5.7忘记密码修改方法 mysql是开发中最常用的关系数据库之一.一般在安装数据库到时候会自定义root密码,有时候会忘记该密码,这时候需要对数据库进行密码修改. 一.windows下更改m ...

  4. 编译Qt5.0连接MySql5.5数据库的驱动(5.0版本的编译,我记得5.2开始自带了)

    第一步 1.准备好Mysql数据库安装文件,Qt5.0完整的离线安装包,以及Qt5.0的完整的源代码.安装好程序,假设Mysql的安装路径为:C:\MySQL5.5,Qt5.0的安装路径:C:\Qt\ ...

  5. 【Qt】Qt5.12编译MySQl5.7驱动(亲自测试成功)

    目录 00. 目录 01. 安装Qt5.12 02. 打开MySQL源码项目 03. 编译MySQL驱动代码 04. 修改mysql.pro文件 05. 编译之后得到对应的库 06. 拷贝动态库到指定 ...

  6. springboot 使用c3p0数据库连接池的方法

    使用springboot开发时,默认使用内置的tomcat数据库连接池,经常碰到这种情况:运行时间一长,数据库连接中断了.所以使用c3p0连接池吧. 引入的maven依赖: <dependenc ...

  7. 在centos上安装mysql5.7的三种方法

    带OS信息的是已编译的二进制文件,不带OS信息的是源码包 mysql-5.7.14-linux-glibc2.5-x86_64.tar.gz 二进制包 mysql-5.5.51.tar.gz 源码包 ...

  8. Mysql5.6二进制包安装方法

    1.Download MySQL Community Server 访问mysql官方网站转到下载页https://dev.mysql.com/downloads/mysql/5.6.html#dow ...

  9. 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 ...

随机推荐

  1. redis学习系列——redis持久化

    1.写操作的流程 2.RDB快照-redis的第一个持久化策略 第一种是以快照的形式持久化到本地磁盘(RDB文件). 持久化策略是: 1.配置(save N M)在N秒内,redis至少发生M次修改, ...

  2. Angular4---起步----环境配置安装@angular/cli

    学习angular,首先要搭建起angular的手脚架@angular/cli.首先需要NodeJS环境. 1.安装NodeJS 首先检查电脑是否安装了NodeJS环境,打开cmd命令行,运行node ...

  3. Numpy库(个人学习笔记)

    一样,咱的计算机还是得先拥有Python,并且安装了Numpy库.有疑问的话可以看这里呦~~~~ 下面开讲: NumPy的主要对象是齐次多维数组.它是一个元素表(通常是数字),并且都是相同类型,由正整 ...

  4. oracle空间索引

    1.索引创建 添加元数据 INSERT INTO USER_SDO_GEOM_METADATA (TABLE_NAME, COLUMN_NAME, DIMINFO, SRID) VALUES ('BE ...

  5. 使用python UIAutomation从QQ2017(v8.9)群界面获取所有群成员详细资料,

    首先安装pip install uiautomation, 运行本文代码.或者下载https://github.com/yinkaisheng/Python-UIAutomation-for-Wind ...

  6. jquery ajax 返回的json对象 新增属性值(干货)

    $.ajax({ type:"GEt'; url:"你的地址", data:{"你的字段","字段值"} success:funt ...

  7. canvas动画气球

    canvas小球的动画我用canvas画布实现的小球动画效果,可以参考下 我用canvas画布实现的小球动画效果,可以参考下 我用canvas画布实现的小球动画效果,可以参考下 我用canvas画布实 ...

  8. Java对象流的使用

    为了让对象持久化(把对象存储到本地),可以使用java的对象流处理对象,把对象的内容写到本地存储的文件中,也可以从本地文件中读取出来.也就是常说的序列化和反序列化 主要用到了ObjectInputSt ...

  9. Oracle查询优化改写--------------------报表和数据仓库运算

    一.行转列 二.列传行 '

  10. php中heredoc与nowdoc的使用方法

    一.heredoc结构及用法 Heredoc 结构就象是没有使用双引号的双引号字符串,这就是说在 heredoc 结构中单引号不用被转义.其结构中的变量将被替换,但在 heredoc 结构中含有复杂的 ...