时间: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_OBJECT
public:
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_OBJECT
public:
explicit Widget02(QWidget *parent = 0);
|