Qt connects 2 databases and related operations

Qt connects to the MySQL database, the Qt version is Qt5.4.0, and the MySQL version is mysql-5.7.21-win32;

//Widget.h
#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QSqlDatabase>
namespace Ui {
class Widget;
}

class Widget : public QWidget
{
    Q_OBJECT

public:
    explicit Widget(QWidget *parent = 0);
    ~Widget();

private slots:
    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

private:
    Ui :: Widget * ui;


};

#endif // WIDGET_H
//main.cp
#include "Widget.h"
#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();

    return a.exec();
}
//Widget.cpp
#include "Widget.h"
#include "ui_Widget.h"
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QDebug>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui (new Ui :: Widget)
{
    ui-> setupUi (this);
   //database 1
     QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL"); // If the connection name is not specified, it is the default database
            db.setDatabaseName("sns");
            db.setHostName("127.0.0.1");
            db.setPort(3306);
            db.setUserName("root");
            db.setPassword("123456");
            if (! db.open()) {
                qDebug()<<"open sns error!";
                return;
            }
            else{
                qDebug()<<"open sns!";
            }
      //     QSqlQuery query;
     //      query.exec("create table student(id int primary key auto_increment,name varchar(255),age int,score int);");

          QSqlQuery query;
          query.exec("insert into student(id ,name ,age ,score) values(201201,'张三',18,53);");


        //database 2
         QSqlDatabase db2 = QSqlDatabase::addDatabase("QMYSQL", "a"); // If you want to connect to multiple databases, you must specify a different connection name, otherwise the above default connection will be overwritten
            db2.setDatabaseName("bbs");
            db2.setHostName("127.0.0.1");
            db2.setPort(3306);
            db2.setUserName("root");
            db2.setPassword("123456");
            if (! db2.open()) {
                qDebug()<<"open bbs error!";
                return;
            }
            else{
                qDebug()<<"open bbs!";
            }
            QSqlQuery query1(db2);
            query1.exec("create table teacher(id int primary key ,name varchar(255),age int,score int);");
            query1.exec("insert into teacher(id ,name ,age ,score) values(2018,'abc',22,33);");


}

Widget::~Widget()
{
    delete ui;
}

void Widget::on_pushButton_clicked()
{
    //Operate database 1
    QSqlQuery query; //Default database 1
    query.exec("select * from student");
 //   while(query.next())
 //   {
        query.next();
        QString  k= query.value(0).toString();
        qDebug()<<k;
 //   }







}

void Widget::on_pushButton_2_clicked()
{
    //Operate database 2
              QSqlDatabase db2 = QSqlDatabase::database("a");//Connect to database 2
              QSqlQuery query(db2); //Bind db2
              query.exec("select * from teacher");
              while(query.next())
              {
                  QString  k= query.value(1).toString();
                  qDebug()<<k;
              }
}



Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324818322&siteId=291194637