Qt连接2个数据库及相关操作

Qt连接MySQL数据库,Qt版本为Qt5.4.0,MySQL版本为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);
   //数据库1
     QSqlDatabase  db =QSqlDatabase::addDatabase("QMYSQL"); // 没指定连接名字,则为默认库
            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);");


        //数据库2
         QSqlDatabase   db2 = QSqlDatabase::addDatabase("QMYSQL", "a"); // 如果要连接多个数据库,必须指定不同的连接名字,否则会覆盖上面的默认连接
            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()
{
    //操作数据库1
    QSqlQuery query; //默认数据库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()
{
    //操作数据库2
              QSqlDatabase db2 = QSqlDatabase::database("a");//连接数据库2
              QSqlQuery query(db2); //绑定db2
              query.exec("select * from teacher");
              while(query.next())
              {
                  QString  k= query.value(1).toString();
                  qDebug()<<k;
              }
}



猜你喜欢

转载自blog.csdn.net/qq_35130321/article/details/80063882