一滋尉、環(huán)境
- QT版本:QT 5.8.0(msvc2013_64)
- MySQL版本:mysql 5.7.19
二玉控、配置
之前 mysql 數(shù)據(jù)庫(kù)一直都連接不上,網(wǎng)上也搜了很多資料狮惜,主要還是庫(kù)文件的問(wèn)題高诺。
重新將 mysql.pro 編譯一下,將生成的 .dll 和 .lib 文件拷貝到 QT 安裝目錄下相應(yīng)的文件夾中就可以了碾篡。
具體操作可以直接上網(wǎng)搜索虱而。
三、連接
打開(kāi)數(shù)據(jù)庫(kù)开泽,在創(chuàng)建 test1 表牡拇,并加入數(shù)據(jù)。
test1
新建一個(gè) QT 項(xiàng)目穆律,在 .pro 文件中加入 QT += sql 惠呼。
測(cè)試與 mysql 連接代碼如下:
#include <QApplication>
#include <QMessageBox>
#include <QSqlError>
#include <QTextCodec>
#include <QDebug>
#include <QSqlDatabase>
#include <QSqlQuery>
bool creatConnect();
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(codec);
if(!creatConnect())
{
return 1;
}
qDebug() << "Available drivers:";
QStringList drivers = QSqlDatabase::drivers();
foreach(QString driver, drivers)
qDebug() << "\t "<< driver;
qDebug() << "End";
QSqlQuery query;
QString sql = "select * from test1;";
qDebug() << sql;
query.exec(sql);
while(query.next())
{
qDebug()<<query.value(0).toString()<<query.value(1).toString();
}
return a.exec();
}
bool creatConnect()
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("127.0.0.1");
db.setPort(3306);
db.setDatabaseName("testmysql01");
db.setUserName("root");
db.setPassword("1234");
bool ok = db.open();//建立數(shù)據(jù)庫(kù)連接
if(!ok)
{
QMessageBox::critical(0,QObject::tr("連接數(shù)據(jù)庫(kù)失敗B驮拧L尢!!"),db.lastError().text());
return false;
}
else
{
QMessageBox::information(0,QObject::tr("Tips"),QObject::tr("連接數(shù)據(jù)庫(kù)成功8ㄋ琛F馈少梁!"));
return true;
}
}
數(shù)據(jù)庫(kù)連接成功。
數(shù)據(jù)庫(kù)連接成功
讀取數(shù)據(jù)庫(kù)成功律想。
讀取數(shù)據(jù)庫(kù)成功