目录
准备工作
写者软件版本信息:Qt 5.9.1、Mysql 5.5.53,请自行安装。并将Mysql安装目录下lib里面的libmysql.dll文件复制到Qt安装目录下的bin文件中。
连接数据库步骤- 建立项目dbDemo,修改dbDemo.pro文件, 增加 Qt += sql
- mainwindow.h中添加 #include <QSqlDatabase> 头文件
- mainwindow.cpp文件添加头文件
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QDebug>
- mainwindow.cpp文件中添加数据库创建语句
//创建及连接数据库MySql maze
QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL");//数据库类型
db.setDatabaseName("maze"); //数据库名
db.setHostName("127.0.0.1"); //主机名
db.setPort(3306); //端口号
db.setUserName("root"); //用户名
db.setPassword("root"); //密码
if (! db.open()) {
qDebug()<<"open database error!";
return;
}
else{
qDebug()<<"open database success!";
}
//创建表
QSqlQuery query;
query.exec("create table student("
"id int primary key auto_increment,"
"name varchar(255),"
"age int,"
"score int);");
query.exec("insert into student(id ,name ,age ,score) values(20153237,'小崔',22,100);");
- mainwindow.ui中加入按钮,修改名称为btnList,修改文本为list
- 转到btnList按钮的槽clicked(),添加数据库查询显示按钮后台代码
QSqlQuery query;
query.exec("select * from student");
while(query.next())
{
QString id= query.value(0).toString();
QString name= query.value(1).toString();
QString age= query.value(2).toString();
QString score= query.value(3).toString();
qDebug()<<id<<name<<age<<score;
}
部分代码
mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QSqlDatabase> //数据库头文件
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_btnList_clicked();
private:
Ui::MainWindow *ui;
};
#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
//创建及连接数据库MySql maze
QSqlDatabase db =QSqlDatabase::addDatabase("QMYSQL");//数据库类型
db.setDatabaseName("maze"); //数据库名
db.setHostName("127.0.0.1"); //主机名
db.setPort(3306); //端口号
db.setUserName("root"); //用户名
db.setPassword("root"); //密码
if (! db.open()) {
qDebug()<<"open database error!";
return;
}
else{
qDebug()<<"open database success!";
}
//创建表
QSqlQuery query;
query.exec("create table student("
"id int primary key auto_increment,"
"name varchar(255),"
"age int,"
"score int);");
query.exec("insert into student(id ,name ,age ,score) values(20153237,'小崔',22,100);");
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_btnList_clicked()
{
QSqlQuery query;
query.exec("select * from student");
while(query.next())
{
QString id= query.value(0).toString();
QString name= query.value(1).toString();
QString age= query.value(2).toString();
QString score= query.value(3).toString();
qDebug()<<id<<name<<age<<score;
}
}