数据库几乎是每个较大的软件所必须应用的,而在Qt中也使用QtSql模块实现了对数据库的完美支持。我们在Qt 助手中查找QtSql Module,可以发现我们用来连接、使用数据的各种类!比如说QSqlDatabase、QSqlQuery等等。这些类都是这个模块的集合,使用这个模块我们需要加入头文件#include <QtSql>,而在工程文件中(*.pro)需要加入一行代码:QT += sql.
这里每个类的作用在后面都有简单的介绍,你也可以进入其中查看其详细内容。下面我们先简单的说一下QSqlDatabase类和QSqlQuery类。
QSqlDatabase类实现了数据库连接的操作,现在Qt支持的数据库类型有如下几种:
Driver name | DBMS |
---|---|
QDB2 | IBM DB2 (version 7.1 and above) |
QIBASE | Borland InterBase |
QMYSQL | MySQL |
QOCI | Oracle Call Interface Driver |
QODBC | Open Database Connectivity (ODBC) - Microsoft SQL Server and other ODBC-compliant databases |
QPSQL | PostgreSQL (versions 7.3 and above) |
QSQLITE2 | SQLite version 2 |
QSQLITE | SQLite version 3 |
QTDS | Sybase Adaptive Server |
而现在我们使用的免费版Qt只提供了SQLite和ODBC数据库的驱动(我们可以在Qt Creator安装目录下的qt/plugins/sqldrivers文件夹下查看),而其他数据库的驱动需要我们自己添加。
QSqlQuery类用来执行SQL语句。QSqlQuery::exec()就是用来执行SQL语句的函数,其参数就是一个SQL语句字符串。
下面我们就先利用这两个类来实现最简单的数据库程序,其他的类我们会在以后的教程中逐个学习到。
1.新建Qt控制台工程。
2.选择上QtSql模块,这样就会自动往工程文件中添加QT += sql 这行代码了。(QtCore模块是默认选中的,这个不要动)
3.修改main.cpp中的内容如下。
我们使用了SQLite数据库,连接名为“:memory:”表示这是建立在内存中的数据库,也就是说该数据库只在程序运行期间有效。如果需要保存该数据库文件,我们可以将它更改为实际的文件路径。
4.最终输出结果为:
2 “XiaoMing”
3 “XiaoHong”
5.我们可以将主函数更改如下。
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "/t" << driver;
return a.exec();
}
这样运行程序就可以显示现在所有能用的数据库驱动了。一般情况下会显示有三个可用驱动!
大家可以试一试!
以后我还会陆续推出Qt数据库方面的文章,敬请关注!