qxorm mysql,QxOrm 访问 MySQL

本文介绍了如何使用QxOrm库访问远程MySQL数据库,包括数据库的配置、建立测试数据库以及解决常见的连接问题。通过示例代码展示了从SQLite切换到MySQL的配置步骤,并提到了可能出现的驱动加载和远程连接问题的解决方案。
摘要由CSDN通过智能技术生成

在前面的 QxOrm 章节中,我们已经介绍了对本地数据库的操作,现在是时候介绍对远程数据库的访问了,那么就以最常用的 MySQL 为例吧!

在开始之前,首先要安装 MySQL。如果条件允许,建议将其安装在 Linux 系统上,安装过程可参考《在 Ubuntu 上安装 MySQL》。在使用数据库时,建议结合数据库管理工具(例如:Navicat)一起,这有助于简化数据库的管理。

1

访问 MySQL

与操作 SQLite 类似,QxOrm 在访问 MySQL 时,仅需要对数据库配置稍作更改即可,其他部分几乎可以不做改动。

为了不对 MySQL 自带的数据库产生影响,我们先来建立一个测试数据库 test,下面的所有操作都在该数据库中进行:

2fca8eb15533bdf18610afec8d94a93a.png

在数据库建立成功之后,现在就可以将《QxOrm 快速上手》中的数据库配置部分从 SQLite:

// 初始化参数,用于和数据库交互

qx::QxSqlDatabase::getSingleton()->setDriverName("QSQLITE");

qx::QxSqlDatabase::getSingleton()->setDatabaseName("./Users.db");

qx::QxSqlDatabase::getSingleton()->setHostName("localhost");

qx::QxSqlDatabase::getSingleton()->setUserName("root");

qx::QxSqlDatabase::getSingleton()->setPassword("");

替换为 MySql 了:

// 配置 MySQL

qx::QxSqlDatabase::getSingleton()->setDriverName("QMYSQL");

qx::QxSqlDatabase::getSingleton()->setDatabaseName("test");

qx::QxSqlDatabase::getSingleton()->setHostName("192.168.***.***");

qx::QxSqlDatabase::getSingleton()->setUserName("root");

qx::QxSqlDatabase::getSingleton()->setPassword("password");

qx::QxSqlDatabase::getSingleton()->setPort(3306);

运行程序,然后查看上面创建的数据库,你会看到新建了一张 User 表,并且还添加了几条记录:

efdcc1ecb1cc04a0959d1bd83553e9da.png

这就表明访问 MySql 成功了,是不是很简单呢!

2

常见问题

在访问远程 MySql 数据库时,难免会出现各种各样的问题,导致最终连接失败,下面来总结下常见的一些原因。

MySql 驱动加载失败

这是 Qt 中的一个典型问题,只要操作 MySql 数据库,就会遇到:

QSqlDatabase: QMYSQL driver not loaded

QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7

无法访问远程 MySql 数据库

这个原因就比较多了,以下情况都有可能:

MySql 服务未开启

防火墙限制 3306 端口访问

MySQL 监听的仅是本机 IP

未赋予账号远程登录权限

有关这几个问题的解决方案,可参考《在 Ubuntu 上安装 MySQL》一文。

所以呢,QxOrm 操作 MySQL 并没有想象中那么难,只要解决好驱动加载和远程连接问题就可以了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值