QT與MYSQL的連線
阿新 • • 發佈:2018-12-15
接上一篇所講,我們已經安裝好MYSQL5.6並且配置好了環境變數,這篇我將介紹如何通過QT使用MYSQL
QT連線MYSQL
- 首先建立專案,在.pro檔案中新增程式碼
QT +=sql
例如:我加在了最後
程式碼
程式碼註釋夠詳細了,我就不過多贅述了,有疑問可以在最下方留言哦! .h檔案
#include <QSqlDatabase>
void connectMYSQL();
void createDB();
void initDB();
QSqlDatabase database;
.cpp檔案
MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { ui->setupUi(this); connectMYSQL(); createDB(); initDB(); QSqlQuery query(database); query.exec("select * from Student"); while(query.next()) { qDebug()<<query.value(0).toString()<<query.value(1).toString()<<query.value(2).toString() <<query.value(3).toString()<<query.value(4).toString()<<query.value(5).toString(); } } //連線資料庫 void MainWindow::connectMYSQL() { if (QSqlDatabase::contains("testConnect"))//判斷testConnect連線是否存在並連線 { database = QSqlDatabase::database("testConnect"); } else //未連線則新建資料庫連線 { database=QSqlDatabase::addDatabase("QMYSQL","testConnect");//建立資料庫連線,併為其命名testConnect database.setHostName("127.0.0.1"); //連線資料庫主機名,這裡需要注意(若填的為”127.0.0.1“,出現不能連線,則改為localhost) database.setPort(3306); //連線資料庫埠號,與設定一致 database.setUserName("root"); //資料庫使用者名稱,與設定一致 database.setPassword("88888888"); //資料庫密碼,與設定一致 } if(!database.open()) { qDebug()<<"fail to connect mysql:"<<database.lastError().text(); return; } } //建立資料庫、資料表 void MainWindow::createDB() { QString querystring; //建立資料庫 database = QSqlDatabase::database("testConnect"); querystring = "CREATE DATABASE IF NOT EXISTS student_info"; database.exec(querystring); if (database.lastError().isValid()) { qDebug()<<"Create database failed."<<database.lastError(); return; } //建立資料表student database.setDatabaseName("student_info"); if(!database.open()) { qDebug()<<"database open failed"; return; } querystring = "CREATE TABLE IF NOT EXISTS student_info.Student\ (\ Name varchar(20),\ NO varchar(20) primary key,\ Sex varchar(20),\ Tell varchar(20),\ Address varchar(30), \ Hobbies varchar(30)\ )"; database.exec(querystring);//執行建立資料表語句 if (database.lastError().isValid()) { qDebug()<<"Student table creat failed:" << database.lastError(); return; } //支援中文 database.exec("alter table Student convert to character set utf8"); } //初始化資料庫(新增原始值) void MainWindow::initDB() { QSqlQuery query(database); query.exec("insert into Student values('張三', '2018010235', '男','12116588966','北京市朝陽區幸福小區12#103','籃球,游泳')"); query.exec("insert into Student values('李四', '2018020156', '男','15665487200','湖南省長沙市嶽麓區開心小區9#602','足球')"); query.exec("insert into Student values('靈兒', '2018020202', '女','10202020202','江蘇省南京市玄武區愛情公寓2#202','Dota')"); if(!query.exec()) { qDebug() << "Error: Fail to insert ." << query.lastError(); } }
執行結果
福利
推薦一款軟體Navicat for MySQL,我們可以直接從中檢視、編輯資料庫哦,具體的安裝和使用,我將在下一篇《Navicat for MySQL》中介紹,敬請關注