一.Qt对数据库的支持
Qt中的数据库模块Qtsql模块提供了对数据库的支持,该模块中的众多类基本上可分为3层:
1.用户接口层 QsqlqueryModel :Read-onlydatamodelforsqlresultsets
QsqltableModel :Editabledatamodelforasingledatabasetable
QsqlRelationaltableModel :Editabledatamodelforasingledatabasetable,withforeignkeysupport
2.sql接口层 QsqlDatabase QsqlError QsqlFIEld QsqlIndex Qsqlquery QsqlRecord QsqlRelation QsqlRelationalDelegate 3.sql驱动层 QsqlResult QsqlDriver QsqlDriverCreator QsqlDriverCreatorBase QsqlDriverPlugin
用户接口层:
这个层中的几个类实现了将数据库中的数据链接到窗口部件上,这些类是使用模型/框架来实现的,它们是高层次的抽象,不熟sql也可以来 *** 作数据库.
sql 接口层:
提供了对数据库的访问.
驱动层:
为具体的数据库和sql接口层提供了底层的桥梁.
二.Qt下连接数据库的方法
//指定连接数据库的驱动 QsqlDatabasedb=QsqlDatabase::addDatabase("QsqlITE"); //连接到的主机名 db.setHostname("bigblue"); //连接到的数据库名称 db.setDatabasename("flightdb"); //用户名 db.setUsername("acarlson"); //密码 db.setPassword("123456"); boolok=db.open();
三.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
#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(); }总结
以上是内存溢出为你收集整理的Qt连接使用sqlite初步探讨全部内容,希望文章能够帮你解决Qt连接使用sqlite初步探讨所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)