QT开发(四十七)——数据库驱动层

QT开发(四十七)——数据库驱动层

驱动层为具体的数据库和SQL接口层之间提供了底层的桥梁,主要类包括Qt SQL模块中的QSqlDriver、QSqlDriverCreator、QSqlDriverCreatorBase、QSqlDriverPlugin和QSqlResult。

一、QSqlDriver

QSqlDriver是访问具体SQL数据库的抽象基类,不能直接使用。如果要创建自定义的数据库驱动,可以根据需要重写QSqlDriver类的纯虚函数和虚函数。

自定义数据库驱动

QSqlDatabase负责加载和管理数据库驱动插件。当某个数据库添加时,相应的数据库驱动插件会被加载。QSqlDatabase依靠驱动插件为QSqlDriver和QSqlResult提供接口。

QSqlDriver是定义了SQL数据库功能的抽象基类。

二、QSqlDriverCreator

QSqlDriverCreator是为指定驱动类型提供SQL驱动工厂的模板类。QSqlDriverCreator<T>实例化对象的类型T就是QSqlDriver的子类。

[virtual] QSqlDriver *QSqlDriverCreator::createObject() const

对QSqlDriverCreatorBase::createObject()函数的重写

三、QSqlDriverCreatorBase

QSqlDriverCreatorBase是SQL驱动工厂的基类。

[pure virtual] QSqlDriver *QSqlDriverCreatorBase::createObject() const

重写这个函数返回一个QSqlDriver子类的实例

四、QSqlDriverPlugin

QSqlDriverPlugin类提供自定义QSqlDriver插件的抽象基类。

SQL数据库驱动插件是一个能被QT动态加载的自定义SQL数据库驱动插件创建变得容易的简单插件接口。

写SQL插件可以通过派生QSqlDriverPlugin类实现,重写纯虚函数create(),使用宏Q_PLUGIN_METADATA()导出类。

pure virtual] QSqlDriver *QSqlDriverPlugin::create(const QString &key)

创建并返回一个驱动名为key的QSqlDriver对象

五、QSqlResult

QSqlResult类提供了访问具体SQL数据库数据的抽象接口。

通常会使用QSqlQuery代替QSqlResult,因为QSqlQuery提供了具体数据库的QSqlResult实现的通用包装。

如果通过派生QSqlDriver实现自定义SQL驱动,需要提供实现了全部纯虚函数和需要的虚函数的自定义的QSqlResult子类。

[protected] QSqlResult::QSqlResult(const QSqlDriver *db)

使用数据库驱动db构建一个QSqlResult对象

时间: 2024-11-08 20:18:32

QT开发(四十七)——数据库驱动层的相关文章

Qt之编译MySQL数据库驱动(MSVC)

Qt之编译MySQL数据库驱动(MSVC)   (2013-12-13 20:24:46) 转载▼ 标签:  qt  mysql  qmysql  qt编译mysql  qt之msvc编译mysql 分类: Qt 在Qt之操作数据库(SQLite)中已经介绍了关于Qt如何操作数据库的问题.由于授权的许可限制,Qt的开源版本无法提供所有的驱动程序,当配置Qt时,即可以选择Qt本身包含的SQL驱动程序. 注:Qt5.2以前的版本,提供的数据库包括:ODBC.SQLite.PSQL,其它没有提供的需要

qt输出支持的数据库驱动

程序者,能解决问题,稳定,效率性能兼顾就好. 在此记录一点小程序,主要是用于以后调试查找方便. #include <QApplication> #include <QDebug> #include <QtSql/QSqlDatabase> #include <QSqlDriver> int main(int argc, char *argv[]) {     QApplication a(argc, argv);     qDebug()<<&q

QT开发(四十六)——QT数据库编程基础

QT开发(四十六)--QT数据库编程基础 一.Qt SQL模块简介 1.Qt SQL模块简介 QT通过Qt SQL模块提供了对SQL数据库的支持,Qt SQL模块中的API分为三层:驱动层.SQL接口层.用户接口层. 如果要使用Qt SQL模块中的类,需要在工程文件(.pro文件)中添加QT += sql代码. 2.驱动层 驱动层为具体的数据库和SQL接口层之间提供了底层的桥梁,主要类包括Qt SQL模块中的QSqlDriver.QSqlDriverCreator.QSqlDriverCreat

Qt开发学习教程

Qt开发学习教程 一.Qt开发基础学习教程 本部分博客主要根据狄泰学院唐老师的<QT实验分析教程>创作,同时根据天山老妖自己的理解和网络搜集的资料及QT官方文档对部分知识点进行了扩展.本系列博客由天山老妖创作,发布于51CTO博客上.狄泰学院网站:http://course.dt4sw.com/ Qt开发基础学习教程目录如下: QT开发(一)--QT简介http://blog.51cto.com/9291927/1856911QT开发(二)--QT开发环境搭建http://blog.51cto

QT开发(四十八)——数据库SQL接口层

QT开发(四十八)--数据库SQL接口层 SQL接口层提供了对数据库的访问,主要类包括Qt SQL模块中的QSqlDatabase.QSqlQuery.QSqlError.QSqlField.QSqlIndex和QSqlRecord.QSqlDatabase类用于创建数据库连接,QSqlQuery用于使用SQL语句实现与数据库交互. 一.QSqlDatabase 1.QSqlDatabase简介 QSqlDatabase类提供了通过连接访问数据库的接口,QSqlDatabase对象本身代表一个连

QT开发(四十九)——数据库用户接口层

QT开发(四十九)--数据库用户接口层 用户接口层主要包括Qt SQL模块中的QSqlQueryModel.QSqlTableModel.QSqlRelationalTableModel.用户接口层的类实现了将数据库中的数据链接到窗口部件上,是使用模型/视图框架实现的,是更高层次的抽象,即便不熟悉SQL也可以操作数据库.需要注意的是,在使用用户接口层的类之前必须先实例化QCoreApplication对象. QT中使用了自己的机制来避免使用SQL语句,提供了更简单的数据库操作及数据显示模型,分别

QT开发(二十七)——QT常用类(一)

QT开发(二十七)--QT常用类(一) 一.QString 1.QString简介 QString提供了Unicode编码的字符串,使用隐式共享技术来节省内存和不必要的数据拷贝,不必考虑跨平台的兼容性. QString类成员函数中除了 ascii().latin1().utf8().local8Bit()函数,其他所有的函数都是可重入的. 2.QString成员函数 QString::QString ( const QChar * unicode, int size ) QString::QSt

QT开发(四十)——GraphicsView编程

QT开发(四十)--GraphicsView编程 一.QGraphicsScene 1.QGraphicsScene QGraphicsScene继承自QObject,是一个管理图元的容器,与QGraphicsView合用可以在2D屏幕上显示如线.三角形.文本.自定义图元等图元. QGraphicsScene是不可见的,只用于管理图元.为了查看场景,需要创建一个视图组件. 一个场景分为三个层:图元层.前景层和背景层.场景的绘制总是从背景层开始,然后是图形项层,最后是前景层. 2.事件处理与传播

QT开发(四十一)——XML文件解析基础

QT开发(四十一)--XML文件解析基础 一.XML文档简介 XML(Extensible Markup Language,可扩展标记语言),是一种通用的文本格式,被广泛运用于数据交换和数据存储,而不是显示数据.XML的标签没有被预定义,用户需要在使用时自行进行定义.XML是W3C(万维网联盟)的推荐标准.相对于数据库表格的二维表示,XML使用的树形结构更能表现出数据的包含关系,作为一种文本文件格式,XML简单明了的特性使得它在信息存储和描述领域非常流行. <?xml version="1