Qt中数据库模块的使用

Qt中数据库模块的使用

数据库在应用程序中得到广泛使用,Qt SQL模块提供了对数据库编程的支持。Qt SQL模块支持多种常见的数据库,如Oracle、MySQL、SQL Server、SQLite等。Qt SQL模块提供了多个类,用以实现数据库连接、执行SQL语句、查询数据与界面显示等功能,数据与界面之间使用 Model/View架构。

要在项目中使用 Qt SQL模块,需要在项目的配置文件(.pro文件)中增加一条配置语句:

Qt += sql

在头文件或源程序中使用Qt SQL模块中的类,可以包含头文件:

#include 

这样会将Qt SQL模块中的所有类都包含进去,如果只使用其中的某些类,可以是包含该类的头文件。

Qt SQL模块使用数据库驱动插件来和不同的数据库接口进行通信。由于Qt SQL模块的接口是独立于数据库的,所以所有数据库特定的代码都包含在了这些驱动中。Qt默认支持一些驱动

QSQLITE2 SQLite2版本
QSQLITE SQLite3版本
QMYSQL MySQL
QODBC SQL Service

QSqlDatabase,QSqlQuery,QSqlError,QSqlRecord提供了对数据库的访问,其中QSqlDatabase类用来创建连接,QSqlQuery类可以使用SQL语句来实现与数据库交互;

要执行一个SQL语句,只需要简单的创建一个QSqlQuery对象,然后调用QSqlQuery::exec()函数即可。

QSqlQuery query;
query.exec("select * from student");

QSqlQuery提供了对结果集的访问,可以一次访问一条记录。当执行完exec()函数后,QSqlQuery的内部指针会位于第一条记录前面的位置。必须调用一次QSqlQuery::next()函数来使其前进到第一条记录,然后可以重复使用next()函数来访问其他的记录,直到该函数的返回值为false,

while(query.next())
{  
	qDebug() << query.value(0).toInt() << query.value(1).toString();  
}

在QSqlQuery类中提供了多个函数来实现在结果集中进行定位,比如next()定位到下一条记录,previous()定位到前一条记录,first()定位的第一条记录,last()定位到最后一条记录,seek(n)定位到第n条记录。当前行的索引可以使用at()返回;record()函数可以返回当前指向的记录。插入一条记录

query.exec("insert into student (id, name) values (1, 'LI')");

该文章会更新,欢迎大家批评指正。

推荐一个零声学院免费公开课程,个人觉得老师讲得不错,
分享给大家:[Linux,Nginx,ZeroMQ,MySQL,Redis,
fastdfs,MongoDB,ZK,流媒体,CDN,P2P,K8S,Docker,
TCP/IP,协程,DPDK等技术内容,点击立即学习:
服务器课程:C++服务器

你可能感兴趣的:(Qt开发,qt,c++,sql)