浅谈关于Qt中数据库编程学习笔记

移动开发
Qt中的每个数据库连接用一个QSqlDatabase对象来表示,Qt使用不同driver来和各种不同数据库的API进行通讯,来看内容。

Qt数据库编程是本文要介绍的内容,主要是来学习在QT数据库的编程和数据库的使用方法,具体内容来看本文详解。

QtSql模块提供了一个平台无关且数据库无关的访问SQL数据库的接口。Qt中的每个数据库连接用一个QSqlDatabase对象来表示;Qt使用不同driver来和各种不同数据库的API进行通讯。

QSqlQuery提供了直接执行任意SQL语句的特性;此外还提供了两个高层次的无需SQL命令的数据库接口:

  1. QSqlTableModel和QSqlRelationalTableModelSection1.ConnectingandQuerying 

在执行SQL命令前,必须先建立好同数据库的连接。

静态函数QSqlDatabase::addDatabase()用于创建一个新的QSqlDatabase对象,函数的***个参数指定了Qt该选择哪个Driver来访问数据库。

在对创建的QSqlDatabase对象设定好hostname,databasename,username和password后,需要调用open()函数来建立到数据库的连接。

一旦到数据库的链接建立好后,就可以通过QSqlQuery::exec()来执行底层数据库所支持的任意SQL语句了。

QSqlQuery::next()返回查询结果集中的下一行,而QSqlQuery::value()则返回当前行中的某一项的值,以QVariant的形式返回。

可以使用QSqlQuery::isActive()来检查SQL语句的执行是否出现错误。

  1. placeholder  
  2. QSqlQuery::prepare()  
  3. QSqlQuery::bindValue()orQSqlQuery::addBindValue()  
  4. QSqlQuery::exec() 

Qt支持数据库中transaction(事务)这个概念。transaction()用于启动transaction,而commit()或rollback()用于结束transaction。

静态函数QSqlDatabase::database(),返回指定连接所对应的QSqlDatabase对象。

  1. QSqlDatabase::driver()返回该连接底层所使用的dirver  
  2. QSqlDatabase::hasFeature()可用来查询底层数据库是否支持某项特性。 

Qt允许在一个程序中创建多个数据库连接,这中情况下在执行SQL语句时,需要为QSqlQuery的构造函数传入要执行该语句的数据库对应的QSqlDatabase对象。

与QSqlQuery相比,QSqlTableModel提供了一个更高层次、更抽象的接口,可以避免使用原始的SQL命令。

  1. QSqlTableModel::record()&QSqlTableModel::value()  
  2. QSqlTableModel::insertRow()&QSqlTableModel::setData()  

QSqlTableModel::submitAll(), 与其他model不同,在使用QSqlTableModel时,必须调用submitAll()来强制所有的修改都写入数据库。

当需要处理外键(foreignkey)时,需要使用QSqlRelationalTableModel而不是QSqlTableModel。

对于使用了SQL相关类的应用程序,需要在对应的.pro中添加下面一行:"QT+=sql",这样在链接时会将QtSql库链入。

小结:浅谈关于Qt数据库编程学习笔记的内容介绍完了,希望通过本文的学习能对你有所帮助!

责任编辑:zhaolei 来源: CSDN博客
相关推荐

2011-08-30 14:15:34

QTSQLite数据库

2011-08-30 12:59:52

Qt数据库

2011-08-30 14:59:34

Qt数据库

2011-09-07 16:36:00

Qt Widget

2011-08-22 15:43:08

IOS开发数据库

2011-06-13 10:03:19

Qt 多线程 编程

2011-06-21 15:31:04

Qt 数据库 SQL

2011-07-01 10:03:52

QT 数据库

2011-08-30 13:49:57

Qt数据库QTableView

2011-08-29 10:34:36

QTQWebKitJavaScript

2011-06-15 11:09:48

Qt PyQt

2011-08-29 10:01:27

QTWebkit插件

2011-06-23 09:00:04

QT QODBC 数据库

2011-08-29 14:27:33

QTWebkit浏览器

2020-08-31 07:00:00

数据库数据库同步

2011-08-30 14:25:06

QT数据库

2011-06-27 12:56:28

2011-07-01 13:42:24

QT 数据库

2011-08-11 14:23:57

SQL Server 索引分区

2020-11-20 14:49:56

数据库
点赞
收藏

51CTO技术栈公众号