关于Qt 数据库编程那点事

移动开发
Qt数据库编程是本文要介绍的内容,主要是来学习QT中数据库的编程操作,现在我们讲使用数据库来进行变成,具体的提供了SELECT INSERT UPDATE DELETE等数据库的执行语句,

Qt数据库编程是本文要介绍的内容,主要是来学习QT数据库的编程操作。现在我们讲使用数据库来进行变成,具体的提供了SELECT INSERT UPDATE DELETE等数据库的执行语句,这是在数据库的接口,当在图形下显示数据时需要使用到QSqlTableModel。所以在数据库编程之前需要掌握基础的SQL 命令语句。

数据库驱动层

相关联的类包含了QSqlDriver ,QSqlDriverCreatpor ,QSqlDriverCreatorBase,QSqlDriverPlugin与QSqlResult 。

数据库的应用程序接口层

这些类提供了访问数据库,提出一个连接请求,如同文件访问一样,当连接成功,讲通过判断信息返回信息,只要建立了连接就可以使用QSqlQuery 类来操作数据库, 在连接数据库之后还提供了几个类, 例如QSqlError ,QSqlField ,QSqlIndex 与QSqlRecord。

用户接口层

这些类提供了与数据相关的部件,包含了QSqlQueryModel,QSqlTableModel,与QSqlRelationTableModel 。这些类的定义使用是用来提供数据库的模式与试图来设计的。

连接到数据库

如果要建立一个数据库的连接, 首先要知道使用的什么数据库,并为这个数据库的连接加载驱动,如果是mysql 数据库,都会有用户名与密码,这也是必须设置的,被连接的数据库或许在本地或者在远程的某台计算机上,所以需要设置一个主机的名称来区别。

下面是连接数据库的例子:

  1. QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");  
  2. db.setHostname("bigblue");  
  3. db.setDatabaseName("flightdb");  
  4. db.setUserName("acarlson");  
  5. db.setPassword("1uTbSbAs");  
  6. bool k = db.open(); 

我们同时也可以建立两个数据库的连接:

  1. QSqlDatabase firstDB = QSqlDatabase::addDatabase("QMYSQL", "first");  
  2. QSqlDatabase secondDB = QSqlDatabase::addDatabase("QMYSQL", "second"); 

在打开数据库的时候有可能会发生错误,这里提供了一个静态的函数,QSqlDatabase::lastError() 来返回当前所发生的错误。与文件相同当打开了一个数据的时候,需要在操作完毕后关闭数据库,使用QSqlDatabase::close(),之后调用QSqlDatabase::removeDatabase().

执行数据库语句

QSqlQuery 提供了执行数据库语句的方法,它可以返回所有的执行结果。当建立好数据库连接后可以使用QSqlQuery::exec() 如同下面的语句:

  1. QSqlQuery query;  
  2. query.exec("SELECT name, salary FROM employee WHERE salary > 50000"); 

当QSqlQuery 建立了一个构造之后,将会接受特定的QSqlDatabase 对象连接来使用,正如上面的代码 。

浏览查询结果

QSqlQuery 当执行exec() 之后将会把指针放在记录***个记录之上,所以需要调用QSqlQuery::next()来获取***个数据下面的代码,通过一个循环体来便利所有表中的数据:

  1. while (query.next()) {  
  2. QString name = query.value(0).toString();  
  3. int salary = query.value(1).toInt();  
  4. qDebug() << name << salary;  

QSqlQuery::value() 函数当前记录区域中的数据,作为默认的QSqlValue::value()返回的是一个QVariant类型。提供了几种可选类型的支持,他们是C++ 的基本的类型,比如int QString 与QByteArray 。对于不同类型的转换使用Qt 提供的函数来是想,例如 QVariant::toString 与QVariant::toInt() 。

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

责任编辑:zhaolei 来源: 互联网
相关推荐

2011-08-30 14:15:34

QTSQLite数据库

2011-08-30 13:33:29

Qt数据库

2011-06-21 15:31:04

Qt 数据库 SQL

2011-05-24 16:20:27

虚函数

2010-05-31 10:11:02

2011-08-30 12:59:52

Qt数据库

2015-11-05 18:03:15

虚拟化云计算资源池

2011-06-23 09:00:04

QT QODBC 数据库

2011-06-30 10:59:43

2011-07-04 13:51:02

QT 对象 模型

2012-02-22 09:32:58

云计算微软Azure

2018-03-15 15:12:00

润乾报表集成

2011-04-14 14:23:06

软件测试测试

2011-08-30 13:49:57

Qt数据库QTableView

2011-07-05 14:46:34

2019-02-12 11:45:05

Java数据库开发

2011-05-25 19:37:47

2021-07-30 07:28:15

Kafka消息引擎

2010-09-02 18:56:09

NoSQL数据库DBA

2011-09-01 15:39:43

QT数据库
点赞
收藏

51CTO技术栈公众号