Qt에서 MySQL 데이터베이스를 동작시키기 위해서는 먼저 mysql 드라이버 파일을 설치하고 MySQL 하위 libmusql.dll 파일을 Qt 하위 bin 폴더에 복사해야 합니다. 설치 경로를 다운로드하시면 됩니다.
libmysql.dll 파일을 이 폴더에 직접 붙여넣으세요.
복사에 성공한 후 드라이버가 성공적으로 설치되었는지 테스트합니다. 새 파일을 만들고 Qt Designer 인터페이스 클래스를 선택한 후 후속 작업을 위해 기본값을 유지합니다. .
새로 생성된 .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()); }
먼저 QString 객체 sql을 생성하고 sql에서 실행할 명령문을 작성한 다음 QSqlQuery 클래스의 객체 쿼리를 생성하고 exec()를 호출합니다. sql 코드를 실행하는 함수입니다.
QString sql = "insert into student (id,name,age,math) values (1,'kaw',20,97)"; //书写想要执行的语句 QSqlQuery query; //创建一个QSqlQuery对象 query.exec(sql); //执行mysql语句
SQL에서는 각 명령문을 세미콜론으로 구분하여 여러 명령문을 동시에 실행할 수 있습니다. 테이블을 추가, 삭제, 업데이트를 동시에 수행하기 위해서는 다음과 같은 작업을 수행한다.
QString sql = "insert into student (id,name,age,math) values (13,'kaw',20,97);delete from student where id=2;update student set name='sdd',math=100 where id=10;"; QSqlQuery query; //创建一个QSqlQuery对象 query.exec(sql); //执行mysql语句
방법 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
쿼리할 테이블은 다음과 같습니다.
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 데이터베이스를 운영하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!