QT连接Mysql数据库

文章目录:

一:准备工作

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;

QT连接Mysql数据库_第1张图片

二:连接数据库

1.目录结构

QT连接Mysql数据库_第2张图片

2.编辑pro文件

QT连接Mysql数据库_第3张图片

 加入

QT       += gui
QT       += sql

QT  = core core-private sql-private

3.编辑.cpp文件

QT连接Mysql数据库_第4张图片

加入 
#include "mainwindow.h"
#include "ui_mainwindow.h"


#include 
#include 
#include 
#include 
#include 
#include 

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 
#include 
#include 
#include 
#include 
#include 

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

4.运行结果

QT连接Mysql数据库_第5张图片

你可能感兴趣的:(#,QT,qt,开发语言)