Qt中的数据库模块Qtsql模块提供了对数据库的支持,该模块中的众多类基本上可分为3层:
用户接口层:
这个层中的几个类实现了将数据库中的数据链接到窗口部件上,这些类是使用模型/框架来实现的,它们是高层次的抽象,不熟sql也可以来操作数据库.
sql 接口层:
提供了对数据库的访问.
驱动层:
三.Qt驱动数据库的实例
3.1工程文件:database.pro
- SOURCES+=\
- main.cpp
- QT+=sql
- HEADERS+=\
- connection.h
3.2头文件:connection.h
- #ifndefCONNECTION_H
- #defineCONNECTION_H
- #include<QMessageBox>
- #include<QsqlDatabase>
- #include<QsqlQuery>
- staticboolcreateConnection()
- {
- QsqlDatabasedb=QsqlDatabase::addDatabase("QsqlITE");
- db.setDatabaseName(":memory:");
- if(!db.open()){
- QMessageBox::critical(0,"Cannotopendatabase",
- "Unabletoestablishadatabaseconnection.",QMessageBox::Cancel);
- returnfalse;
- }
- QsqlQueryquery;
- query.exec("createtablestudent(idintprimarykey,"
- "namevarchar(20))");
- query.exec("insertintostudentvalues(0,'LiMing')");
- query.exec("insertintostudentvalues(1,'LiuTao')");
- query.exec("insertintostudentvalues(2,'WangHong')");
- returntrue;
- }
- #endif//CONNECTION_H
3.3主文件main.cpp
原文链接:https://www.f2er.com/sqlite/201377.html
- #include<QApplication>
- #include<QsqlDatabase>
- #include<QDebug>
- #include<QStringList>
- #include"connection.h"
- #include<QVariant>
- intmain(intargc,char*argv[])
- {
- QApplicationa(argc,argv);
- //创建数据库连接
- if(!createConnection())return1;
- //使用QsqlQuery查询整张表
- QsqlQueryquery;
- query.exec("select*fromstudent");
- while(query.next())
- {
- qDebug()<<query.value(0).toInt()<<query.value(1).toString();
- }
- returna.exec();
- }