文章目录:
一:准备工作
1.确保QT有Mysql驱动
2.创建数据库和表
二:连接数据库
1.目录结构
2.编辑pro文件
3.编辑.cpp文件
4.运行结果
一:准备工作
1.确保QT有Mysql驱动
这个是QT自己没有的,需要单独下载不然就会报下面的错 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available drivers: QSQLITE QODBC QODBC3 QPSQL QPSQL7
不知道怎么弄的:看这里
2.创建数据库和表
1.同时按win + r 2.输入:mysql –u root –p 接着输入密码 3.查看数据库:show databases; 4.创建数据库:create database test; test是我自己取的数据库名字 5.使用数据库:use test; 6.创建一个表:create table student(name char(10),age smallint,sex char(2)); 7.再次查看数据库是否存在:show databases;
二:连接数据库
1.目录结构
2.编辑pro文件
加入
QT += gui QT += sql QT = core core-private sql-private
3.编辑.cpp文件
加入#include "mainwindow.h" #include "ui_mainwindow.h" #include <QCoreApplication> #include <QSqlDatabase> #include <QDebug> #include <QStringList> #include <QSqlQuery> #include <QSqlError> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); //查看数据库:mysql –u root –p show databases; 创建数据库create database 数据库名字; // 配置数据库 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("127.0.0.1");//127.0.0.1 localhost db.setPort(3306); db.setDatabaseName("test"); db.setUserName("root"); db.setPassword("root"); //数据库连接测试 if(!db.open()) qDebug() << "打开失败"; else qDebug() << "打开成功"; } MainWindow::~MainWindow() { delete ui; }
详细代码#include "mainwindow.h" #include "ui_mainwindow.h" #include <QCoreApplication> #include <QSqlDatabase> #include <QDebug> #include <QStringList> #include <QSqlQuery> #include <QSqlError> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); //查看驱动类型 QStringList list = QSqlDatabase::drivers(); qDebug() << list; // 输出可用数据库 qDebug() << "Available drivers:"; QStringList drivers = QSqlDatabase::drivers(); foreach(QString driver, drivers) qDebug() << driver; //查看数据库:mysql –u root –p show databases; 创建数据库create database 数据库名字; // 配置数据库 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("127.0.0.1");//127.0.0.1 localhost db.setPort(3306); db.setDatabaseName("test"); db.setUserName("root"); db.setPassword("root"); //数据库连接测试 if(!db.open()) qDebug() << "打开失败"; else qDebug() << "打开成功"; //数据库操作 QSqlQuery query(db); //注意这里varchar一定要指定长度,不然会出错 query.exec("create table student(id int primary key,name varchar(20))"); query.exec("insert into student values(1,'xiaogang')"); query.exec("insert into student values(2,'xiaoming')"); query.exec("insert into student values(3,'xiaohong')"); query.exec("select id,name from student where id >= 2"); while(query.next()) { int value0 = query.value(0).toInt(); QString value1 = query.value(1).toString(); qDebug() << value0 << value1 ; } //关闭数据库 db.close(); } MainWindow::~MainWindow() { delete ui; }