时间:2021-07-01 10:21:17 帮助过:4人阅读
Linux下的qt安装,命令时:sudoapt-get install qt-sdk
安装mysql数据库,安装方法參考博客:http://blog.csdn.net/tototuzuoquan/article/details/39565783
假设行想进数据库开发。须要安装libqt5sql5-mysql.命令是:
sudo apt-get install libqt5sql5-mysql
4 创建一个项目
要调用数据库。须要加上QT += gui widgets sql 也就是说要加上sql库
注意假设是在windows平台下:要将C:/MySQL/bin文件夹下的libmySQL.dll复制到项目编译后的生成的exe文件所在的同级文件夹下(比方文件夹E:\QT\build-Database01-Desktop_Qt_5_3_MinGW_32bit-Debug\debug下。在此文件夹下有Database01.exe)。比方截图:
A 假设是在Linux文件夹下,输入下面命令:mysql-u root -p123456
创建数据库:
B使用数据库d0718,并创建所需的数据库表
表内容例如以下:
| CREATE TABLE `tcontact` ( `username` varchar(32) NOT NULL, `mobile` varchar(16) NOT NULL, `mobile2` varchar(16) NOT NULL, `telephone` varchar(32) DEFAULT NULL, `home` varchar(32) DEFAULT NULL, `homeaddr` varchar(1024) DEFAULT NULL, `company` varchar(128) DEFAULT NULL, `companyaddr` varchar(1024) DEFAULT NULL, `title` varchar(16) DEFAULT NULL, PRIMARY KEY (`mobile`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | 
| CREATE TABLE `tuser` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT ‘this is userid‘, `username` varchar(32) NOT NULL COMMENT ‘username‘, `password` varchar(32) NOT NULL COMMENT ‘password‘, `gender` int(11) NOT NULL COMMENT ‘1 is male 0 is female‘, PRIMARY KEY (`id`), UNIQUE KEY `username` (`username`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; | 
 
C 编写项目代码:
| Database01.pro | 
| SOURCES+=\ main.cpp 
 QT+=gui widgets sql 
 CONFIG+=C++11 | 
| main.cpp | 
| #include <QApplication>#include <QSqlDatabase>#include <QSqlError>#include <QDebug>#include <QWidget> int main(int argc,char* argv[]){    QApplication app(argc,argv);    QWidget w;     /*QT能够操作 QSLITE QODBC,QPLSQL 这些数据库*/    //以下表示使用mysql数据库    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");    db.setHostName("127.0.0.1");  //设置数据库所在位置    db.setUserName("root");       //设置数据库的username    db.setPassword("123456");     //设置数据库的password    db.setDatabaseName("d0718");  //设置数据库名称    bool bRet = db.open();        //打开数据库连接    if(bRet == false){    //说明能够通过db.lastError()的方式得到错误信息        qDebug() << "error open database" << db.lastError().text();        exit(0);    }    qDebug() << "open database success";     w.show();    return app.exec();} | 
| 执行结果: 
 | 
| 
 | 
| 案例二: | 
| Database01.pro的内容例如以下: | 
| SOURCES += \    main.cpp \    Widget01.cpp QT += gui widgets sql#假设用到C++11的才会用到。否则不用CONFIG += C++11 HEADERS += \    Widget01.h | 
| Widget01.h的内容例如以下: | 
| #ifndef WIDGET01_H#define WIDGET01_H #include <QWidget> class Widget01 : public QWidget{    Q_OBJECTpublic:    explicit Widget01(QWidget *parent = 0); signals: public slots: }; #endif // WIDGET01_H | 
| Widget01.cpp的内容例如以下: | 
| #include "Widget01.h" #include <QSqlDatabase>#include <QSqlError>#include <QSqlQuery>#include <QSqlResult> #include <QDebug> Widget01::Widget01(QWidget *parent) :    QWidget(parent){    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");    db.setHostName("127.0.0.1");    db.setUserName("root");    db.setPassword("123456");    db.setDatabaseName("d0718");    bool bRet = db.open();    if(bRet == false)    {        qDebug() << "error open database" << db.lastError().text();        exit(0);    }    qDebug() << "open database success";     //向数据库中加入数据    db.exec("insert into tuser(username,password,gender) values(‘涂作权‘,‘123456‘,‘1‘)");    db.close();} | 
| main.cpp的内容例如以下: | 
| #include <QApplication>#include "Widget01.h" int main(int argc,char* argv[]){    QApplication app(argc,argv);    Widget01 w;    w.show();    return app.exec();} | 
| 执行结果: 
 | 
| 
 | 
| 案例2,使用QSqlTableModel | 
| Database01.pro | 
| SOURCES += \    main.cpp \    Widget02.cpp QT += gui widgets sql CONFIG += C++11 HEADERS += \    Widget02.h | 
| Widget02.h | 
| #ifndef WIDGET02_H#define WIDGET02_H #include <QWidget> class Widget02 : public QWidget{    Q_OBJECTpublic:    explicit Widget02(QWidget *parent = 0);
                  
	 	
                    
                    
                    
                    
                    
                
              
                    
                
                  
                     |