>  기사  >  데이터 베이스  >  Qt에서 MySQL 데이터베이스를 운영하는 방법

Qt에서 MySQL 데이터베이스를 운영하는 방법

PHPz
PHPz앞으로
2023-06-03 08:52:312074검색

    1. 드라이버 설치

    (1) 설치

    Qt에서 MySQL 데이터베이스를 동작시키기 위해서는 먼저 mysql 드라이버 파일을 설치하고 MySQL 하위 libmusql.dll 파일을 Qt 하위 bin 폴더에 복사해야 합니다. 설치 경로를 다운로드하시면 됩니다.

    Qt에서 MySQL 데이터베이스를 운영하는 방법

    libmysql.dll 파일을 이 폴더에 직접 붙여넣으세요.

    Qt에서 MySQL 데이터베이스를 운영하는 방법

    (2) 드라이버가 성공적으로 설치되었는지 확인합니다.

    복사에 성공한 후 드라이버가 성공적으로 설치되었는지 테스트합니다. 새 파일을 만들고 Qt Designer 인터페이스 클래스를 선택한 후 후속 작업을 위해 기본값을 유지합니다. .

    Qt에서 MySQL 데이터베이스를 운영하는 방법

    새로 생성된 .cpp 파일에 다음 라이브러리를 추가하세요.

    #include <QSqlDatabase>
    #include <QDebug>
    #include <QMessageBox>  
    #include <QSqlError>    
    #include <QString>
    #include <QSqlQuery>
    #include <QVariantList>

    다음 코드를 생성자에 삽입한 후 실행을 클릭하세요. 경고 창이 뜨지 않으면 설치가 성공한 것이고, 그렇지 않으면 실패한 것입니다.

    //添加一个数据库
        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());
        }

    2. MySQL 데이터베이스 사용하기

    (1) 단일 명령문 실행

    먼저 QString 객체 sql을 생성하고 sql에서 실행할 명령문을 작성한 다음 QSqlQuery 클래스의 객체 쿼리를 생성하고 exec()를 호출합니다. sql 코드를 실행하는 함수입니다.

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

    (2) 다중 명령문 실행

    SQL에서는 각 명령문을 세미콜론으로 구분하여 여러 명령문을 동시에 실행할 수 있습니다. 테이블을 추가, 삭제, 업데이트를 동시에 수행하기 위해서는 다음과 같은 작업을 수행한다.

        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语句

    (3) 일괄 작업

    방법 1: addBindValue()

    query.prepare()에서 실행하려는 문을 입력합니다. 여기서 입력할 값은 "?"로 대체됩니다. 여기서는 "?"입니다. 와일드카드. 나중에 설정하고 싶은 값을 추가할 때 idList, nameList, ageList, mathList를 이용하시면 됩니다. 오류 방지를 위해 addBindValue()를 이용해 id, name, age, math 순으로 값을 바인딩해 주시기 바랍니다.

        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();

    방법 2:bindValue()

    직접 사용자 정의 이름을 사용하여 바인딩을 완료합니다. 이때 바인딩 순서는 직접 결정할 수 있습니다.

    	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();

    (4) Query

    쿼리할 테이블은 다음과 같습니다.

    Qt에서 MySQL 데이터베이스를 운영하는 방법

    value 뒤의 값은 인덱스 또는 열 이름일 수 있습니다. 꺼낸 후 해당 데이터 유형으로 변환해야 합니다.

    	//查询操作
        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();   
        }

    쿼리 결과:

    Qt에서 MySQL 데이터베이스를 운영하는 방법

    위 내용은 Qt에서 MySQL 데이터베이스를 운영하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    성명:
    이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제