是一个非常流行的关系型数据库,也是使用标准的 SQL 语言进行数据库的操作。在 Qt 5 中已经提供了对 MySQL 数据库的默认支持,要想使用该数据库,需要先进行数据库的安装,这里我们介绍下在 Windows 系统中 MySQL 数据库的安装和简单使用。后面篇章中会使用 SQLite 作为默认数据库进行讲解,其中的内容对于 MySQL 数据库也是适用的。



环境:Windows 7 + Qt 5.8.0(包含Qt Creator 4.2.1)





一、安装MySQL


、从 http://www.qter.org/portal.php?mod=view&aid=10 下载MySQL 安装包,具体文件为mysql-5.6.10-win32,如下图所示。




所示。单击“ Next ”按钮。



、 该界面选择同意条款。如图 所示。单击“ Next ”按钮。





qt mysql 新建数据库 qt创建的数据库在哪里_Mysql





4、下面选择定制安装“ Custom ”。





qt mysql 新建数据库 qt创建的数据库在哪里_MySQL_02




5、这里需要安装所有的头文件和库,点击 Development Components 前面的下拉箭头,然后选择第二项。




qt mysql 新建数据库 qt创建的数据库在哪里_mysql_03




6、然后选择下面的“ Browse…”按钮来更改安装路径,这里设置为 C:\MySQL\ 。





qt mysql 新建数据库 qt创建的数据库在哪里_MySQL_04





7、填写完路径后单击“ OK ”按钮回到主页面,单击“ Next ”按钮来到新的页面,这里单击“ Install ”按钮开始安装。 。




qt mysql 新建数据库 qt创建的数据库在哪里_Mysql_05





8、等安装完毕后,点击“ Finish ”按钮完成安装。





qt mysql 新建数据库 qt创建的数据库在哪里_MySQL_06





二、在MySQL中创建数据库





1、下面先在安装的 MySQL 中创建一个数据库,用于后面的测试。首先到 MyQSL 的安装目录C:\MySQL\bin 目录下运行mysqld.exe 程序,该程序运行完成后会自动关闭 。




qt mysql 新建数据库 qt创建的数据库在哪里_MySQL_07




2、同时按下键盘上的 Win 图标和 R 键,在弹出的对话框中输入 cmd 。




qt mysql 新建数据库 qt创建的数据库在哪里_qt mysql 新建数据库_08





3、进入终端后输入下面的命令:

cd C:\MySQL\bin



跳转到安装目录下 。


qt mysql 新建数据库 qt创建的数据库在哪里_Mysql_09




4、然后输入下面的命令:



mysql –uroot –p


使用root 用户来登陆 MySQL ,因为默认密码是空的,所以这里不用设置密码。运行这行代码会提示 Enter password ,这时敲回车即可。




qt mysql 新建数据库 qt创建的数据库在哪里_数据库_10





5、登录 MySQL 以后,使用下面的命令来查看现有的数据库:




注意后面有个分号。



qt mysql 新建数据库 qt创建的数据库在哪里_Mysql_11





6、可以看到,这里现在已经有几个数据库了,它们是 MySQL 需要的 。




qt mysql 新建数据库 qt创建的数据库在哪里_MySQL_12




7、这里不使用已经有的数据库,而是新建自己的数据库,下面新建名为 mydata 的数据库:


qt mysql 新建数据库 qt创建的数据库在哪里_mysql_13





8、再次查看已经存在的数据库,发现显示出了刚才创建的数据库 。




qt mysql 新建数据库 qt创建的数据库在哪里_mysql_14




9、完成后,输入 exit 命令退出 MySQL 。





三、测试MySQL程序


1、打开 
 Qt Creator 
 ,新建项目,模板选择为“ 
 Qt Console Application 
 ”,项目名称为“mysqltest”。完成后在mysqltest.pro 
 文件中添加如下代码:
 

 

  QT += sql 

 

然后按下Ctrl+S 
 保存该文件。
 

 

2、更改main.cpp 
 文件内容如下。
 

 
#include <QCoreApplication>
#include <QSqlDatabase>
#include <QDebug>
#include <QSqlQuery>
 


  int main(int argc, char *argv[]) 

 

  { 

 

      QCoreApplication a(argc, argv); 

 

打开MySQL 

 

      QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); 

 

      db.setHostName("localhost"); 

 

      db.setDatabaseName("mydata"); 

 

      db.setUserName("root"); 

 

      db.setPassword(""); 

 

      if (!db.open()) 

 

          qDebug() << "Failed to connect to root mysql admin"; 

 

      else qDebug() << "open"; 

 


      QSqlQuery query(db); 

 


      //注意这里varchar一定要指定长度,不然会出错 

 

      query.exec("create table student(id int primary key,name varchar(20))"); 

 


      query.exec("insert into student values(1,'xiaogang')"); 

 

      query.exec("insert into student values(2,'xiaoming')"); 

 

      query.exec("insert into student values(3,'xiaohong')"); 

 


      query.exec("select id,name from student where id >= 2"); 

 


      while(query.next()) 

 

      { 

 

          int value0 = query.value(0).toInt(); 

 

          QString value1 = query.value(1).toString(); 

 

          qDebug() << value0 << value1 ; 

 

      } 

 


      return a.exec(); 

 

  }




这里注意,创建表时varchar 一定要指定长度。




中。运行程序 。




qt mysql 新建数据库 qt创建的数据库在哪里_mysql_15