Qt连接使用sqlite初步探讨

Qt连接使用sqlite初步探讨,第1张

概述一.Qt对数据库的支持   Qt中的数据库模块QtSql模块提供了对数据库的支持,该模块中的众多类基本上可分为3层: 1.用户接口层 QSqlQueryModel :Read-only data model for SQL result sets QSqlTableModel :Editable data model for a single database tab

一.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初步探讨所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/1174330.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-02
下一篇 2022-06-02

发表评论

登录后才能评论

评论列表(0条)

保存