QT与MYSQL的连接

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_33308135/article/details/83069504

接上一篇所讲,我们已经安装好MYSQL5.6并且配置好了环境变量,这篇我将介绍如何通过QT使用MYSQL

QT连接MYSQL

  1. 首先创建项目,在.pro文件中添加代码 在这里插入图片描述
QT +=sql

例如:我加在了最后
在这里插入图片描述

代码

代码注释够详细了,我就不过多赘述了,有疑问可以在最下方留言哦!
.h文件

#include <QSqlDatabase>

    void connectMYSQL();
    void createDB();
    void initDB();

    QSqlDatabase database;

.cpp文件

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    connectMYSQL();
    createDB();
    initDB();

    QSqlQuery query(database);
    query.exec("select * from Student");
    while(query.next())
    {
        qDebug()<<query.value(0).toString()<<query.value(1).toString()<<query.value(2).toString()
                  <<query.value(3).toString()<<query.value(4).toString()<<query.value(5).toString();

    }
}

//连接数据库
void MainWindow::connectMYSQL()
{
    if (QSqlDatabase::contains("testConnect"))//判断testConnect连接是否存在并连接
    {
        database = QSqlDatabase::database("testConnect");
    }
    else //未连接则新建数据库连接
    {
        database=QSqlDatabase::addDatabase("QMYSQL","testConnect");//创建数据库连接,并为其命名testConnect
        database.setHostName("127.0.0.1");      //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost)
        database.setPort(3306);                 //连接数据库端口号,与设置一致
        database.setUserName("root");          //数据库用户名,与设置一致
        database.setPassword("88888888");    //数据库密码,与设置一致
    }
    if(!database.open())
    {
        qDebug()<<"fail to connect mysql:"<<database.lastError().text();
        return;
    }
}

//创建数据库、数据表
void MainWindow::createDB()
{
    QString querystring;
    //创建数据库
    database = QSqlDatabase::database("testConnect");
    querystring = "CREATE DATABASE IF NOT EXISTS student_info";
    database.exec(querystring);
    if (database.lastError().isValid())
    {
        qDebug()<<"Create database failed."<<database.lastError();
        return;
    }


    //创建数据表student
    database.setDatabaseName("student_info");
    if(!database.open())
    {
        qDebug()<<"database open failed";
        return;
    }
    
    querystring =
            "CREATE TABLE IF NOT EXISTS student_info.Student\
            (\
                Name varchar(20),\
                NO varchar(20) primary key,\
                Sex varchar(20),\
                Tell varchar(20),\
                Address varchar(30), \
                Hobbies varchar(30)\
                )";
            database.exec(querystring);//执行创建数据表语句
    if (database.lastError().isValid())
    {
        qDebug()<<"Student table creat failed:" << database.lastError();
        return;
    }

    //支持中文
    database.exec("alter table Student convert to character set utf8");

}

//初始化数据库(添加原始值)
void MainWindow::initDB()
{
    QSqlQuery query(database);
    query.exec("insert into Student values('张三', '2018010235', '男','12116588966','北京市朝阳区幸福小区12#103','篮球,游泳')");
    query.exec("insert into Student values('李四', '2018020156', '男','15665487200','湖南省长沙市岳麓区开心小区9#602','足球')");
    query.exec("insert into Student values('灵儿', '2018020202', '女','10202020202','江苏省南京市玄武区爱情公寓2#202','Dota')");
    if(!query.exec())
    {
        qDebug() << "Error: Fail to insert ." << query.lastError();

    }

}

运行结果

在这里插入图片描述

福利

推荐一款软件Navicat for MySQL,我们可以直接从中查看、编辑数据库哦,具体的安装和使用,我将在下一篇《Navicat for MySQL》中介绍,敬请关注
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_33308135/article/details/83069504