Rumah > pangkalan data > tutorial mysql > Bagaimana untuk mengendalikan pangkalan data MySQL dalam Qt

Bagaimana untuk mengendalikan pangkalan data MySQL dalam Qt

PHPz
Lepaskan: 2023-06-03 08:52:31
ke hadapan
2087 orang telah melayarinya

    1 Pasang pemacu

    (1) Pasang

    Untuk mengendalikan pangkalan data MySQL dalam Qt, anda mesti memasang mysql terlebih dahulu. fail pemacu. Hanya salin fail libmusql.dll di bawah MySQL ke folder bin di bawah laluan pemasangan Qt.

    Bagaimana untuk mengendalikan pangkalan data MySQL dalam Qt

    Tampal fail libmysql.dll terus ke dalam folder ini.

    Bagaimana untuk mengendalikan pangkalan data MySQL dalam Qt

    (2) Sahkan sama ada pemacu berjaya dipasang

    Selepas menyalin berjaya, uji sama ada pemacu berjaya dipasang, cipta fail baharu dan pilih kelas antara muka pereka Qt, dan semua operasi seterusnya boleh disimpan sebagai lalai.

    Bagaimana untuk mengendalikan pangkalan data MySQL dalam Qt

    Perkenalkan perpustakaan berikut ke dalam fail .cpp yang baru dijana

    #include <QSqlDatabase>
    #include <QDebug>
    #include <QMessageBox>  
    #include <QSqlError>    
    #include <QString>
    #include <QSqlQuery>
    #include <QVariantList>
    Salin selepas log masuk

    Masukkan kod berikut dalam pembina, dan kemudian klik Jalankan, jika tiada tetingkap amaran timbul Ia bermakna pemasangan berjaya, jika tidak, ia gagal.

    //添加一个数据库
        QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");    //括号内要写出数据库的类型
        //设置数据库
        db.setHostName("127.0.0.1"); //设置数据库的主机ip
        //设置数据库的用户名
        db.setUserName("root");
        //设置数据库的密码
        db.setPassword("123456");    //这个就是安装MySQL时设置的密码
        //设置数据库的名字
        db.setDatabaseName("aaa2");
        //打开数据库(已经安装过mysql驱动了)
        if(db.open()==false){
            QMessageBox::warning(this,"waring",db.lastError().text());
        }
    Salin selepas log masuk

    2. Gunakan pangkalan data MySQL

    (1) Pelaksanaan pernyataan tunggal

    Mula-mula buat objek QString sql, tulis pernyataan yang akan dilaksanakan dalam sql, dan kemudian buat Kelas QSqlQuery Pertanyaan objek memanggil fungsi exec() untuk melaksanakan kod dalam sql.

        QString sql = "insert into student (id,name,age,math) values (1,&#39;kaw&#39;,20,97)";	//书写想要执行的语句
        QSqlQuery query;	//创建一个QSqlQuery对象
        query.exec(sql);    //执行mysql语句
    Salin selepas log masuk

    (2) Pelaksanaan berbilang pernyataan

    Dalam sql, berbilang pernyataan boleh dilaksanakan pada masa yang sama dengan memisahkan setiap pernyataan dengan koma bertitik. Operasi berikut dilakukan untuk menambah, memadam dan mengemas kini jadual pada masa yang sama.

        QString sql = "insert into student (id,name,age,math) values (13,&#39;kaw&#39;,20,97);delete from student where id=2;update student set name=&#39;sdd&#39;,math=100 where id=10;";
        QSqlQuery query;	//创建一个QSqlQuery对象
        query.exec(sql);    //执行mysql语句
    Salin selepas log masuk

    (3) Operasi kelompok

    Kaedah 1: addBindValue()

    Masukkan penyataan yang anda ingin laksanakan dalam query.prepare(), di mana to-be- dimasukkan Nilai digantikan dengan "?", di mana "?" ialah aksara kad bebas. Apabila menambah nilai yang anda ingin tetapkan kemudian, anda boleh menggunakan idList, nameList, ageList dan mathList. Untuk mengelakkan ralat, sila gunakan addBindValue() dalam susunan id, nama, umur dan matematik untuk mengikat nilai.

        QSqlQuery query;
        query.prepare("insert into student (id,name,age,math) values (?,?,?,?)");	//书写语句模型
        //添加绑定数据
        QVariantList idList;    //创建一个id列表
        idList << 15<<16<<17;
        query.addBindValue(idList); //完成第一个?的绑定
        QVariantList nameList;
        nameList << "ddd"<<"eee"<<"jjj";
        query.addBindValue(nameList);   //完成第二个?的绑定
        QVariantList ageList;
        ageList << 25<<24<<23;
        query.addBindValue(ageList);    //完成第三个?的绑定
        QVariantList mathList;
        mathList << 90<<89<<90;
        query.addBindValue(mathList);   //完成第四个?的绑定
        //执行批处理
        query.execBatch();
    Salin selepas log masuk

    Kaedah 2: bindValue()

    Gunakan nama tersuai secara langsung untuk melengkapkan pengikatan Pada masa ini, urutan pengikatan boleh diputuskan sendiri.

    	QSqlQuery query;
        query.prepare("insert into student (id,name,age,math) values (:id,:name,:age,:math)");  //:id之类的名字时自定义的 自己方便就好
        //添加绑定数据
        QVariantList idList;    //创建一个id列表
        idList << 18<<19<<20;
        query.bindValue(":id",idList); //完成:id的绑定
        QVariantList nameList;
        nameList << "ddd"<<"eee"<<"jjj";
        query.bindValue(":name",nameList);   //完成:name的绑定
        QVariantList ageList;
        ageList << 25<<24<<23;
        query.bindValue(":age",ageList);    //完成:age的绑定
        QVariantList mathList;
        mathList << 90<<89<<90;
        query.bindValue(":math",mathList);   //完成:math的绑定
        //执行批处理
        query.execBatch();
    Salin selepas log masuk

    (4) Pertanyaan

    Jadual yang akan disoal ialah:

    Bagaimana untuk mengendalikan pangkalan data MySQL dalam Qt

    Nilai selepas nilai boleh menjadi indeks atau lajur nama. Selepas mengeluarkannya, ia perlu ditukar kepada jenis data yang sepadan.

    	//查询操作
        QSqlQuery query;
        query.exec("select * from student");
        while(query.next()){
            qDebug()<<query.value(0).toInt()
                 <<query.value("name").toString().toUtf8().data()
                <<query.value(2).toInt()
               <<query.value(3).toInt();   
        }
    Salin selepas log masuk

    Hasil pertanyaan:

    Bagaimana untuk mengendalikan pangkalan data MySQL dalam Qt

    Atas ialah kandungan terperinci Bagaimana untuk mengendalikan pangkalan data MySQL dalam Qt. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan