數據庫(QT)

原文鏈接:http://shouce.jb51.net/qt-beginning/26.html

數據庫簡介

系統學習:《QT creator快速入門》
教程:http://shouce.jb51.net/qt-beginning/26.html
Qt中的QtSql模塊提供了對數據庫的支持,該模塊中的衆多類基本上可以分爲三層.
Qtsql
其中驅動層爲具體的數據庫和SQL接口層之間提供了底層的橋樑;SQL接口層提供了對數據庫的訪問,其中的QSqlDatabase類用來創建連接,QSqlQuery類可以使用SQL語句來實現與數據庫交互,其他幾個類對該層提供了支持;用戶接口層的幾個類實現了將數據庫中的數據鏈接到窗口部件上。對應數據庫部分的內容,大家可以在幫助中查看SQL Programming關鍵字。

QT += sql

數據庫驅動查詢:QSqlDatabase::drivers()
SQLite數據庫是一款輕型的文件型數據庫,主要應用於嵌入式領域,支持跨平臺,而且Qt對它提供了很好的默認支持。

Qt Creator配置數據庫,包含MySQL的庫和頭文件,在.pro添加:

INCLUDEPATH += C:/MySQL/include/
LIBS+= -LC:/MySQL/lib/ -llibmysql

MySQL驅動沒有加載的時候要考慮是否存在依賴,將libmysql.dll文件複製到C:\Qt\4.8.4\bin中,然後再次運行程序試試
常規操作:

	// 輸出可用數據庫
    qDebug() << "Available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
        qDebug() << driver;

    // 打開MySQL
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("localhost");
    db.setDatabaseName("mydata");
    db.setUserName("root");
    db.setPassword("");
    if (!db.open())
        qDebug() << "Failed to connect to root mysql admin";
    else qDebug() << "open";

    QSqlQuery query(db);

    //注意這裏varchar一定要指定長度,不然會出錯
    query.exec("create table student(id int primary key,name varchar(20))");

    query.exec("insert into student values(1,'xiaogang')");
    query.exec("insert into student values(2,'xiaoming')");
    query.exec("insert into student values(3,'xiaohong')");

    query.exec("select id,name from student where id >= 2");

    while(query.next())
    {
        int value0 = query.value(0).toInt();
        QString value1 = query.value(1).toString();
        qDebug() << value0 << value1 ;
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章