Qt连接使用sqlite初步探讨

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

一.Qt对数据库支持

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

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

用户接口层:

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

sql 接口层:

提供了对数据库的访问.

驱动层:

为具体的数据库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. }
原文链接:https://www.f2er.com/sqlite/201377.html

猜你在找的Sqlite相关文章