詳解Qt數據庫的鏈接與如何使用SQL
Qt數據庫的鏈接與如何使用SQL是本文要介紹的內容,主要是來學習QT中數據庫的鏈接和SQL如何來使用,具體內容的實現來看本文詳解。
一直沒接觸數據庫,前一陣突然有機會用了用MySQL,順手把SQL語法學了一遍,學完了手癢癢,一想Qt可以結合數據庫,就順便試了下Qt鏈接數據庫與使用SQL。SQL部分就不說了,Qt先說鏈接部分。
1、先做數據庫驅動
現在Qt SDk for windows里面已經有ODBC的驅動了,我當時現做了個MySQL的驅動(其實我當時是沒看見有ODBC),因為我使用MinGW,所以先使用remip.exe把MySQL/opt里面的 LibMySQL.lib轉成.a(使用MSVC的就可以跳過這步了)。然后再進qt/src/plugins/sqldriver/mysql 編譯出驅動
- QMAKE -o Makefile "INCLUDEPATH+=MYSQL/INCLUDE" "LIBS+=MYSQL/LIB/OPT/libmysql.a" mysql.pro
 
注意下qmake的參數就行了 再make, 這部分網上說的很詳細,
2、Qt使用SQL
主要是下面的幾個類
 QSqlDatabase 建立于數據庫的鏈接
 
 QSqlQuery 用于執(zhí)行SQL語句
 
 QSqlTableModel 結合QTableView可以輸出數據庫的表
貼下我寫的簡單Demo
- QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL"/*"QODBC"*/); // becomes the new default connection
 - db.setUserName("root");//用戶名
 - db.setPassword("password");//密碼
 - db.setHostName("localhost");
 - db.setDatabaseName("test");//數據庫名
 - db.setConnectOptions("CLIENT_SSL=1;CLIENT_IGNORE_SPACE=1");//使用SSL
 - db.setPort(3306);//端口
 - if(db.open()){
 - qDebug()<<"open/n"<<db.lastError().driverText()<<"/n";
 - }
 - else{
 - qDebug()<<"open faile/n";
 - }
 - QSqlQuery query;//用于執(zhí)行SQL語言
 - query.exec("show databases");//很方便的
 - while (query.next()) {
 - qDebug()<<query.value(0).toString()<<"/n";
 - }
 - QSqlTableModel *model = new QSqlTableModel;//間接將數據庫表裝入QTableView
 - model->setTable("people"); //表名
 - model->setEditStrategy(QSqlTableModel::OnManualSubmit);
 - model->select();
 - //model->removeColumn(0); // don't show the ID
 - //model->setHeaderData(0, Qt::Horizontal, QObject::tr("ID"));
 - model->setHeaderData(0, Qt::Horizontal, tr("Name"));
 - model->setHeaderData(1, Qt::Horizontal, tr("Age"));
 - model->setHeaderData(2, Qt::Horizontal, tr("Sex"));
 - QTableView *view = new QTableView(this);
 - view->setModel(model);
 - db.close();
 - QGridLayout * gl=new QGridLayout();
 - gl->addWidget(view);
 - this->setLayout(gl);
 
小結:詳解Qt數據庫的鏈接與如何使用SQL的內容介紹完了,希望通過本文的學習能對你有所幫助!















 
 
 
 
 
 
 