Qt连接使用sqlite初步探讨

前端之家收集整理的这篇文章主要介绍了Qt连接使用sqlite初步探讨前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一.Qt对数据库支持 @H_404_6@

Qt中的数据库模块Qtsql模块提供了对数据库支持,该模块中的众多类基本上可分为3层:

 
 
  1. 1.用户接口层@H_404_6@
  2. QsqlQueryModel :Read-onlydatamodelforsqlresultsets
    QsqlTableModel :Editabledatamodelforasingledatabasetable
    QsqlRelationalTableModel :Editabledatamodelforasingledatabasetable,withforeignkeysupport
  1. 2.sql接口层@H_404_6@
  2. QsqlDatabase
  3. QsqlError
  4. QsqlField
  5. QsqlIndex
  6. QsqlQuery
  7. QsqlRecord
  8. QsqlRelation
  9. QsqlRelationalDelegate
  10. 3.sql驱动层@H_404_6@
  11. QsqlResult
  12. QsqlDriver
  13. QsqlDriverCreator
  14. QsqlDriverCreatorBase
  15. QsqlDriverPlugin

用户接口层:@H_404_6@

这个层中的几个类实现了将数据库中的数据链接到窗口部件上,这些类是使用模型/框架来实现的,它们是高层次的抽象,不熟sql也可以来操作数据库.

sql 接口层:@H_404_6@

提供了对数据库的访问.

驱动层@H_404_6@:

为具体的数据库sql接口层提供了底层的桥梁.

二.Qt下连接数据库方法

 
 
  1. //指定连接数据库的驱动
  2. QsqlDatabasedb=QsqlDatabase::addDatabase("QsqlITE");
  3. //连接到的主机名
  4. db.setHostName("bigblue");
  5. //连接到的数据库名称
  6. db.setDatabaseName("flightdb");
  7. //用户名
  8. db.setUserName("acarlson");
  9. //密码
  10. db.setPassword("123456");
  11. boolok=db.open();

三.Qt驱动数据库的实例

3.1工程文件:database.pro

 
 
  1. SOURCES+=\
  2. main.cpp
  3. QT+=sql
  4. HEADERS+=\
  5. connection.h

3.2头文件:connection.h

 
 
  1. #ifndefCONNECTION_H
  2. #defineCONNECTION_H
  3. #include<QMessageBox>
  4. #include<QsqlDatabase>
  5. #include<QsqlQuery>
  6. staticboolcreateConnection()
  7. {
  8. QsqlDatabasedb=QsqlDatabase::addDatabase("QsqlITE");
  9. db.setDatabaseName(":memory:");
  10. if(!db.open()){
  11. QMessageBox::critical(0,"Cannotopendatabase",
  12. "Unabletoestablishadatabaseconnection.",QMessageBox::Cancel);
  13. returnfalse;
  14. }
  15. QsqlQueryquery;
  16. query.exec("createtablestudent(idintprimarykey,"
  17. "namevarchar(20))");
  18. query.exec("insertintostudentvalues(0,'LiMing')");
  19. query.exec("insertintostudentvalues(1,'LiuTao')");
  20. query.exec("insertintostudentvalues(2,'WangHong')");
  21. returntrue;
  22. }
  23. #endif//CONNECTION_H

3.3文件main.cpp

 
 
  1. #include<QApplication>
  2. #include<QsqlDatabase>
  3. #include<QDebug>
  4. #include<QStringList>
  5. #include"connection.h"
  6. #include<QVariant>
  7. intmain(intargc,char*argv[])
  8. {
  9. QApplicationa(argc,argv);
  10. //创建数据库连接
  11. if(!createConnection())return1;
  12. //使用QsqlQuery查询整张表
  13. QsqlQueryquery;
  14. query.exec("select*fromstudent");
  15. while(query.next())
  16. {
  17. qDebug()<<query.value(0).toInt()<<query.value(1).toString();
  18. }
  19. returna.exec();
  20. }

猜你在找的Sqlite相关文章