QT MYSQL 데이터베이스 연결 상세 절차

첫 번 째 단 계 는 대응 하 는 데이터베이스 모듈(sql)을 추가 하여 프로젝트 파일(.pro)에 몇 가지 종 류 를 소개 합 니 다(대응 하 는 헤더 파일 이기 도 합 니 다).
  •  QSqlError 가 SQL 데이터베이스 오류 정 보 를 제공 하 는 클래스
  •   QSqlQuery 는 SQL 문 구 를 실행 하고 조작 하 는 방법 을 제공 합 니 다.     
  • QSqlQueryDatabase 데이터베이스 연결 처리  
  •  1.데이터베이스 연결
    
     //  mysql    
            QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); 
            //     
            db.setHostName("127.0.0.1");//      IP
            db.setUserName("root");  //      
            db.setPassword("root");//        
            db.setDatabaseName("sys"); //    
            if(db.open()==false)
            {
                QMessageBox::information(this,"       ",db.lastError().text());
                return;
            }
      실패 하면 QT 가 my sql 데이터 베 이 스 를 연결 하 는 데 라 이브 러 리 가 필요 할 수도 있 습 니 다.  libmysql.dll)라 이브 러 리 파일 을 QT 설치 디 렉 터 리 D:\Qt\\5.9\mingw 5332\bin(자신의 디 렉 터 리 에 따라) 제 QT 버 전 은 5.9 입 니 다.데이터 베 이 스 를 열 었 는 지,사용자 가 이 데이터 베 이 스 를 열 었 는 지 여부 입 니 다.
    2.테이블 생 성
    
    QSqlQuery q;
    q.exec("create table student(id int primary key auto_increment, name varchar(255), age int, score int)ENGINE=INNODB;");
    3.테이블 에 데이터 삽입
    방법 1(한 줄 삽입)
    
    q.exec("insert into student(id, name, age,score) values(1, '  ', 24,80);");
    방법 2(다 중 줄 삽입)는 odbc 스타일 로 나 뉜 다. ...과 Oacle 스타일
       1.odbc 스타일
    
     q.prepare("insert into student(name, age,score) values(?, ?, ?)");  //?    
       QVariantList name;
       name<<"  "<<"  "<<"  ";
       QVariantList age;
       age<<-2<<12<<14;
       QVariantList score;
       score<<0<<89<<90;
       //               
       q.addBindValue(name);
       q.addBindValue(age);
       q.addBindValue(score);
       //       
       q.execBatch();
      추가 하려 면\#include헤더 파일 필드 를 순서대로 연결 해 야 합 니 다.
        2.orace 스타일 d
    
    //    :+     
      q.prepare("insert into student(name, age,score) values(:n, :a,:s)");
      QVariantList name;
      name<<"  "<<"  "<<"  ";
      QVariantList age;
      age<<5<<10<<3;
      QVariantList score;
      score<<77<<89<<99;
      //              :+     
      q.bindValue(":n",name);
      q.bindValue(":s",score);
      q.bindValue(":a",age);
      //       
      q.execBatch();
     자리 표시 자 에 따라 다 르 기 때문에 필드 순 서 는 임의로 할 수 있 습 니 다.
    3.리스트 업데이트
    
    QSqlQuery q;
            q.exec("update student set score=76 where name='  '");
     4.테이블 삭제
    
    QSqlQuery q;
            q.exec("delete from student  where name='  '");
    5.시계 옮 겨 다 니 기
    
    QSqlQuery q;
        q.exec("select *from student");
        while(q.next())   //    false
        {
            //   
            //qDebug()<<q.value(0).toInt()<<q.value(1).toString()<<q.value(2).toInt() 
            <<q.value(3).toInt();
            //   
            qDebug()<<q.value("id").toInt()<<q.value("name").toString()<<q.value("age").toInt() 
            <<q.value("score").toInt();
        }
    여기에 QT 가 MYSQL 데이터 베 이 스 를 연결 하 는 것 에 관 한 글 이 소개 되 었 습 니 다.더 많은 관련 QT 가 MYSQL 데이터 베 이 스 를 연결 하 는 내용 은 예전 의 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 도 많은 응원 부 탁 드 리 겠 습 니 다!

    좋은 웹페이지 즐겨찾기