首页 > 数据库 >Qt6 连接 MySql数据库

Qt6 连接 MySql数据库

时间:2024-04-19 11:45:03浏览次数:28  
标签:Qt6 Qt 数据库 MySql db Mysql 连接

前言

教程参考:
http://t.csdnimg.cn/wKAk3
Qt6 是没有mysql驱动是要自己安装的,而且在 Qt6 是没有.pro文件,只能用cmake进行编译,特别的坑。
我也是被坑惨了,还去傻乎乎地找.por文件,整了半天。

必看

这个教程是针对Qt6的,如果用的是Qt5,则不适用!
在连接前要先安装Mysql,可以参考
http://t.csdnimg.cn/wMQku

正文

下载驱动

  • 找到对应Qt版本的驱动,下载解压
    https://github.com/thecodemonkey86/qt_mysql_driver/releases
  • libcrypto-1_1-x64.dlllibmysql.dlllibssl-1_1-x64.dll这3个文件复制到D:\Qt\6.4.2\mingw_64\bin文件夹中
  • 再将解压缩后中的sqldrivers的两个mysql驱动文件复制到D:\Qt\6.4.2\mingw_64\plugins\sqldrivers

调整代码

在CMakelists.txt 文件中

  • 找到find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets)
    替换为find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Widgets Sql)
  • target_link_libraries(filename PRIVATE Qt$ {QT_VERSION_MAJOR}::Widgets)后面添加一行
    target_link_libraries(filename PRIVATE Qt${QT_VERSION_MAJOR}::Sql)
    里面的 filename 就是文件名,要一致

连接 Mysql 数据库

检测 Mysql 驱动

//输出可用数据库
    qDebug()<<"available drivers:";
    QStringList drivers = QSqlDatabase::drivers();
    foreach(QString driver, drivers)
        qDebug()<<driver;

如果输出中含有MySQL,那么恭喜你说明你的qt有MySQL驱动了,可以进行下一步。

连接

!!!注意是连接数据库,要保证已经创建过该数据库才能链接。
创建数据库的操作 在安装链接中也有(用的图形化界面),也可以参考这个:
http://t.csdnimg.cn/GyNr9

在自己工程的cpp文件中加入

#include<QSqlDatabase>
#include<QDebug>
 
void MainWindow::on_pushButton_clicked()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");  //连接本地主机
    db.setPort(3306);
    db.setDatabaseName("db_name");  //Mysql 创建的数据库名称
    db.setUserName("root");
    db.setPassword("123456");    //安装 Mysql 设置的密码
    bool ok = db.open();
    if (ok){
         qDebug() << "link success";
    }
    else {
         qDebug() <<  "link failed";
    }
}

测试输出link success,连接成功。

直接创建数据库使用

    //创建数据库
    QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    //设置数据库名字
    db.setDatabaseName("login.db");
    //打开数据库
    if(db.open())
    {
        qDebug()<<"打开数据库成功"<<endl;
    }else
    {
        qDebug()<<"打开数据库失败"<<endl;
    }

成功后会在目录下生成.db文件

标签:Qt6,Qt,数据库,MySql,db,Mysql,连接
From: https://www.cnblogs.com/AndyYX/p/18144477

相关文章

  • Ubuntu22.04安装MySQL8
    Ubuntu22.04安装MySQL8第一部分:安装mysql使用apt安装sudoaptupdatesudoaptinstall-ymysql-server安装完成之后自动结束,不需要输入密码。更新用户密码这里默认安装的是mysql8.0版本,因为i没有输入密码;所以无法使用mysql-uroot-p进入mysql,需要执行这个命令(一定要......
  • 【面试准备】【SQL】数据库有哪些约束?
    数据库中的约束(constraints)是用来确保数据库中数据的准确性和可靠性的一种规则。以下是一些常见的数据库约束:PRIMARYKEY(主键):确保列的值是唯一的,并且不能为NULL。FOREIGNKEY(外键):用于在两个表之间建立链接,并确保引用的数据的完整性。UNIQUE(唯一):确保所有列的组合在表中是......
  • 数据库设计的必备小技巧
    前言对于后端开发人员来说,访问数据库,是代码中必不可少的一个环节。系统中收集到用户的核心数据,为了安全性,我们一般会存储到数据库,比如:mysql,oracle等。后端开发的日常工作,需要不断的建库和建表,来满足业务需求。这里就跟大家分享一下数据库设计的一些小技巧!见名知意在数据库设......
  • DbMigrator迁移数据库报错:The ConnectionString property has not been initialized.
    问题执行.DbMigrator时报错:TheConnectionStringpropertyhasnotbeeninitialized.原因情况一DbContext中没有指定连接字符串解决方案情况二appsettings.json配置文件的属性没有设置为始终复制解决方案右键appsettings.json选择属性>复制到输出目录选择始终复制或......
  • mysql
    sql语法单行或多行书写,分号结尾sql语句不区分大小写DDL数据定义语言数据库操作CREATEDATABASE[IFNOTEXISTS]name[DEFAULTCHARSET=name]DROPDATABASEnameUSEnameSHOWDATABASESSELECTDATABASE()表操作SHOWTABLESDESCname//显示表结构SHOWCRE......
  • 如何实现数据库数据到Abp vnext实体对象的同步?以及代码生成工具
    在采用了EFCore的CodeFirst方式下,如果你在数据库中直接添加了新表或存储过程,你需要在项目代码中手动反向工程这些数据库的更改,以保持CodeFirst的代码与数据库同步。这种情况可以通过如下两个步骤来实现:从现有数据库创建模型:使用EntityFrameworkCore的Scaffold-DbContext......
  • Mysql 工作笔记
    一、运维相关1、删除binlog日志二、索引相关2.1、索引创建在区分度高的字段上创建索引;索引区分度=count(distint记录)/count(记录)。巧用组合索引实现**IndexConditionPushdown(ICP)索引下推**,避免回表。--先对name匹配索引找到主键,在回表根据主键找......
  • JDBC数据库汇总Attack研究
    前言针对除Mysql的其它数据库的jdbcattack分析H2RCE介绍H2是一个用Java开发的嵌入式数据库,它本身只是一个类库,即只有一个jar文件,可以直接嵌入到应用项目中。H2主要有如下三个用途:第一个用途,也是最常使用的用途就在于可以同应用程序打包在一起发布,这样可以非常方便地......
  • MySQL常用管理命令、常用函数小计
    1、Windows系统是MySQL服务器的关闭、重启 (mysql为服务名)关闭服务:netstopmysql启动服务:netstartmysql 2、连接mysql服务器在cmd窗口执行命令:mysql-h127.0.0.1-P3306-uroot-p -h127.0.0.1:指定主机IP  -P3306:执行mysql服务端口......
  • MySQL-8.0.33-winx64 解压版安装 [Windows]
    1、下载安装包mysql-8.0.33-winx64.ziphttps://dev.mysql.com/downloads/file/?id=5182202、安装解压mysql-8.0.33-winx64.zip(至:C:\app\mysql-8.0.33-winx64);创建my.ini文件;默认解压目录无my.ini文件,需自己创建;进入目录C:\app\mysql-8.0.33-winx64,创建my.ini,文件内容......