QT开发(四十六)——QT数据库编程基础
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了QT开发(四十六)——QT数据库编程基础,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3273字,纯文字阅读大概需要5分钟。
内容图文
数据库编程基础一、Qt SQL模块简介
1、Qt SQL模块简介
QT通过Qt SQL模块提供了对SQL数据库的支持,Qt SQL模块中的API分为三层:驱动层、SQL接口层、用户接口层。
如果要使用Qt SQL模块中的类,需要在工程文件(.pro文件)中添加QT += sql代码。
2、驱动层
驱动层为具体的数据库和SQL接口层之间提供了底层的桥梁,主要类包括Qt SQL模块中的QSqlDriver、QSqlDriverCreator、QSqlDriverCreatorBase、QSqlDriverPlugin和QSqlResult。
3、SQL接口层
SQL接口层提供了对数据库的访问,主要类包括Qt SQL模块中的QSqlDatabase、QSqlQuery、QSqlError、QSqlField、QSqlIndex和QSqlRecord。QSqlDatabase类用于创建数据库连接,QSqlQuery用于使用SQL语句实现与数据库交互。
4、用户接口层
用户接口层主要包括Qt SQL模块中的QSqlQueryModel、QSqlTableModel、QSqlRelationalTableModel。用户接口层的类实现了将数据库中的数据链接到窗口部件上,是使用模型/视图框架实现的,是更高层次的抽象,即便不熟悉SQL也可以操作数据库。需要注意的是,在使用用户接口层的类之前必须先实例化QCoreApplication对象。
二、数据库驱动
Qt SQL模块使用数据库驱动插件和不同的数据库接口进行通信。由于Qt的SQL模块的接口是独立于数据库的,所以所有具体数据库的代码包含在了这些驱动中。QT本身提供了多种数据库驱动,并且可以添加其他数据库驱动。QT提供的数据库驱动源码可以作为编写自定义驱动的模型。
QT5.7版本支持的数据库驱动如下:
数据库驱动 | 备注 |
QDB2 | IBM DB2 7.1及以上版本 |
QIBASE | Borland InterBase |
QMYSQL | Mysql |
QOCI | Oracle Call Interface Driver |
QODBC | ODBC |
QPSQL | PostgreSQL 7.3及以上版本 |
QSQLITE2 | SQLite 2版本 |
QSQLITE | SQLite 3版本 |
QTDS | Sybase Adaptive Server,QT 4.7开始废弃 |
QT5.7版本支持的数据库驱动如下:
由于GPL许可证的兼容性问题,并不是列出的所有驱动插件都提供给了Qt的开源版本。实际QT中安装的驱动可以根据如下代码显示:
#include <QCoreApplication> #include <QSqlDatabase> #include <QDebug> #include <QStringList> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); qDebug() << "Available drivers:"; QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() << driver; return a.exec(); }
三、数据库连接
1、连接MySQL数据库
//使用MySQL数据库驱动建立一个数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("IP");//设置主机
db.setDatabaseName("dbname"); //设置数据库名称
db.setUserName("user"); //设置用户名
db.setPassword("password"); //设置密码
bool ok = db.open(); //连接数据库
2、连接Acess数据库
//使用ODBC驱动连接数据库
QSqlDatabase ldb = QSqlDatabase::addDatabase("QODBC");
ldb.setDatabaseName("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=db.mdb;UID=user;PWD=passwor");
bool ok = ldb.open();
3、连接SQL Server数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName(QString("DRIVER={SQL SERVER}; SERVER=%1; DATABASE=%2; UID=%3; PWD=%4;").arg("IP").arg("dbname").arg("user").arg("password"));
bool ok = db.open();
4、连接SQLite数据库
//使用SQLite数据库驱动建立一个数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("IP");//设置主机
db.setDatabaseName("dbname"); //设置数据库名称
db.setUserName("user"); //设置用户名
db.setPassword("password"); //设置密码
bool ok = db.open(); //连接数据库
本文出自 “生命不息,奋斗不止” 博客,谢绝转载!
QT开发(四十六)——QT数据库编程基础
标签:qt开发 数据库编程基础
本文系统来源:http://9291927.blog.51cto.com/9281927/1879146
内容总结
以上是互联网集市为您收集整理的QT开发(四十六)——QT数据库编程基础全部内容,希望文章能够帮你解决QT开发(四十六)——QT数据库编程基础所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。