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; } }