MySQL是一种关系型数据库管理系统,所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL 作为网站数据库。
SQLite是一款轻量级的关系数据库管理系统,也是开源免费的,用户可以直接读取和写入数据库的文件,非常适合不需要多个用户的小型项目。
MySQL和SQLite虽然都属于关系型数据库管理系统,但它们还是存在较大差异的。MySQL需要服务器才能运行,适合多个用户使用,管理员可以为每个用户分配特定权限,并且多个用户可以同时写入不同的文件,能轻松扩展以满足用户的需求。
而SQLite不需要实际的服务器来运行,应用程序无需与服务器通信到客户端/服务器架构,而是集成到SQLite中。SQLite不能很好地支持多个用户,如果有两个用户同时尝试写入,那么数据库将会被短暂锁定,功能受限。另外,SQLite不能处理一次大量数据,一旦超过最大容量,其性能将会降低。
总的来说,SQLite是为只有一个用户的小型项目设计的轻量级解决方案,而MySQL适用于各种规模的项目并支持多个用户。
官方下载:https://dev.mysql.com/downloads/mysql/
选择Developer Default(开发人员默认值)一直点击next,最后设置数据库密码就行。
将MySQL的bin添加到环境变量中,使用Developer Default安装,会默认安装在C盘。一般是这个目录:C:\Program Files\MySQL\MySQL Server 8.0\bin;
在终端中输入:mysql -u root -p 回车 然后输入你的之前设置的密码。
出现mysql> 说明安装成功!
1.首先建立一个qt程序,点击.pro文件,添加sql,添加完成编译一下,加载sql的头文件。
2.查看数据库驱动
#include "mainwindow.h"
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
//打印编译器的数据库驱动
qDebug()<<"数据库驱动:"<
3.添加mysql数据库驱动,我们需要两个文件:libmysql.lib和qsqlmysql.dll文件
libmysql.lib:在安装的mysql目录文件的lib目录下;
将该文件拷贝到F:\Program\QT\5.14.2\mingw73_64\bin目录下。
qsqlmysql.dll:需要我们进行编译:
(1)打开QT的安装目录的这个路径:QT\5.14.2\Src\qtbase\src\plugins\sqldrivers\mysql
(2)在该目录下新建一个mysqldll的文件夹,然后打开mysql.pro。
TARGET = qsqlmysql
HEADERS += $$PWD/qsql_mysql_p.h
SOURCES += $$PWD/qsql_mysql.cpp $$PWD/main.cpp
# QMAKE_USE += mysql
OTHER_FILES += mysql.json
PLUGIN_CLASS_NAME = QMYSQLDriverPlugin
include(../qsqldriverbase.pri)
LIBS += "F:\MySQL\MySQL Server 8.0\lib\libmysql.lib" //Mysql的路径
INCLUDEPATH += "F:/MySQL/MySQL Server 8.0/include"
DESTDIR = ..\mysql\mysqldll
修改qtsqldrivers-config.pri
QT = core core-private sql-private
# For QMAKE_USE in the parent projects.
# include($$shadowed($$PWD)/qtsqldrivers-config.pri)
include(./configure.pri)
PLUGIN_TYPE = sqldrivers
load(qt_plugin)
DEFINES += QT_NO_CAST_TO_ASCII QT_NO_CAST_FROM_ASCII
编译:
在mysqldll文件下生成三个文件,将qsqlmysql.dll和qsqlmysql.dll.debug拷贝到刚刚编译时使用的编译器路径中。
比如刚才我使用的是mingw73_64位的编译器,使用我就拷贝到F:\Program\QT\5.14.2\mingw73_64\plugins\sqldrivers目录下
验证:
重新执行test1程序,看到mysql驱动已经添加成功了
代码连接验证:
#include "mainwindow.h"
#include
#include
#include
#include
#include
#include
#include
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QWidget * w = new QWidget();
//打印编译器的数据库驱动
qDebug()<<"数据库驱动:"<
连接完成!!!