Qt 初级教程—连接数据库(以Mysql为例) #F0210

说明:
本文软件操作环境win10+Qt 5.6.0+Mysql5.7.18

一、介绍

在我们日常的开发过程中,项目离不开操作数据库(像Oracle、Mysql、SQLserver、SQLite、以及一些国产数据库像达梦数据库,人大金仓等)。

Qt的开发环境为我们提供了丰富的操作类。比如:
QSqlDriverCreatorBase------------SQL驱动的父类
QSqlDriverCreator-------------------用于指定驱动类型的模板库
QSqlDatabase------------------------用于连接数据库的类
QSqlDriver-----------------------------用于访问特定SQL数据库的抽象类
QSqlError------------------------------告知数据库发生的错误信息的类
QSqlField------------------------------数据库表格和视图中调整字段的类
QSqlIndex------------------------------运行数据库索引的类
QSqlQuery-----------------------------用于运行SQL语句的类
QSqlRecord---------------------------隐藏数据库记录的类
QSqlResult----------------------------为访问特定数据库的数据而抽象化的接口类
QSqlQueryModel --------------------为SQL结果和数据模型而仅支持只读模式的类
QSqlRelationalTableModel--------使用外键在单一数据表修改数据类型的类
QSqlTableModel---------------------在单一数据库表修改数据模型的类

Qt提供的数据库模块,可以大致分为三种:

  • 驱动层(用来为具体 的数据库和SQL接口层之间提供底层的桥梁),比如:QSqlDriver、QSqlDriverCreator、QSqlDriverCreatorBase、QSqlResult、QSqlDriverPlugin。
  • SQL接口层(提供对数据库的访问),比如:QSqlDatabase、QSqlQuery、QSqlError、QSqlField、QSqlIndex、QSqlRecord。
  • 用户接口层(提供将数据库中的数据链接到Qt的窗口部件上),比如:QSqlTableModel、QSqlQueryModel、QSqlRelationalTableModel。

二、连接到数据库

1、在pro文件中添加sql模块,格式:

**QT += sql**

因为qmake会读取Qt本身的设置,在默认情况下,Qt包含了core和gui模块,当我们需要数据库模块或者网络模块的操作时候,需要添加sql和network(QT += network)。

2、SQL数据库驱动
Qt默认支持一些驱动,如:“QSQLITE”, “QMYSQL”, “QMYSQL3”, “QPSQL”, “QPSQL7”,你可以通过代码查看:

QStringList sDrivers = QSqlDatabase::drivers();
qDebug()<<"Qt drivers:"<<sDrivers;

你也可以添加其他的驱动。

3、连接数据库
使用代码连接数据库(参考Qt文档的代码):

  QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");   						
    db.setUserName("root");       							//登陆MYSQL的用户名
    db.setPassword("feng");    							//你自己登陆的密码
    db.setDatabaseName("stu_project"); // 						//登陆数据库的名称
    db.open();

    if(true == db.open()){
        qDebug()<<"mysql is open!:"<<db.open();
    }else{
        qDebug()<<"mysql is not open!:"<<db.open();
    }

但是,在使用Qt连接Mysql的时候,会报错:QMYSQL driver not loaded。

这里需要自己编译的时候,链接静态库。把libmysql.dll文件拷贝到Qt的bin目录中(操作步骤:需要把Mysql安装目录bin文件夹下面的libmysql.dll文件拷贝到QT\5.6\mingw492_32\bin)。我再拷贝libmysql.dll文件时还是报错,又重新下载了一个Mysql5.7版本的libmysql.dll,如果你需要你可以到这里下载Qt链接mysql5.7所需的libmysql.dll和libmysql.lib文件)。

然后就可以了。

4、使用数据库查询
例如:

QSqlQuery query;

query.exec("SELECT * from stu_project.products");

5、数据库语句
你需要知道数据库的增、删、改、查语句:
例如:

创建一张表:create table 表名(内容 类型);
在表中插入:insert into 表名 values(表中的内容);
从表中删除信息:delete from 表名 where 列名 = 条件;
最常见的就是从表中查询信息:select 列名 from 表名 where 列名 = 条件;
......

你可以百度或者查阅资料,推荐一本Mysql超级好用的一本书《Mysql必知必会》。下载链接Mysql必知必会-超清版pdf

猜你喜欢

转载自blog.csdn.net/ifeng12358/article/details/86384315
今日推荐