Qt连接数据库

以Mysql为例

  • 准备

    • Qt官方并没有为我们提供可用的mysql,只提供了源代码(不能直接使用),需要我们基于这些源码自行编译得到对应的动态库(静态库)之后,才能被程序加载从而连接上相应的数据库。
    • 具体操作参考Qt如何编译数据库驱动–爱编程的大丙
  • 连接数据库

//1.包含头文件
#include <QSqlDatabase>
#include <QMessageBox>
#include <QSqlDatabase>
#include<QSqlQuery>
#include <QSqlError>
#include <QDebug>

//2.确定所用数据库的驱动
QStringList list=QSqlDatabase::drivers();
qDebug()<<list;

//3.创建数据库实例
QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL")//只能通过该静态方法创建,构造方法不行

//4.设置数据库属性
//1.设置要连接的主机名(本地的话就是localhost(127.0.0.1)),远程填远程服务器ip地址
db.setHostName("localhost");
//2.设置要连接的用户名
db.setUserName("你的用户名");
//3.设置要连接数据库名
db.setDatabaseName("你的数据库名");
//4.设置数据库名对应的密码
db.setPassword("你的数据库密码");
//5.设置端口号(mysql默认为3306)
db.setPort(3306);

//5.连接
//使用open()函数来连接 成功-true 失败-false
if(!db.open())
{
	//使用lasterror获取数据库操作最后一次错误操作信息--使用QSqlError的text()函数将其转换为qstring
	qDebug()<<"失败原因: "<<db.lastError().text();
}
else
{
	qDebug()<<"连接成功!";
}
  • 操作数据库
    • 通过QSqlQuery类进行查询对数据库进行增删改查
//使用QSqlQuery来操作数据库(增删查改)
 QSqlQuery query(db);
#if 0
    //查
    QString sql="select * from empp";
    //通过该方法来执行sql语句
    query.exec(sql);//如果不在构造函数里指定sql就必须在exec里指定sql语句
    //执行成功就会在query里得到一个结果集通过循环来访问它
    while(query.next())//next():得到结果集中的一条结果(也就是数据库的每一行),如果遍历完返回false
    {
        //去除每条记录的字段值(从0开始,0代表id 1代表年龄 2代表姓名)
        qDebug()<<query.value(0).toInt()<<query.value(1).toInt() //value返回的是全能类型(Qvariant)需要转换为字段的真实类型
               <<query.value(2).toString()<<endl;
    }
#endif

#if 0
    //增(insert插入数据时字符串和日期数据类型需要用''包围,其他类型不需要)
    int id=7;
    int age=22;
    QString name("李白");
    QString sql = QString("insert into empp(id,age,name) values(%1,%2,'%3')").arg(id).arg(age).arg(name);//这里%1就是id,%2就是age...
    query.exec(sql);

#endif

#if 0
    //改--修改id为5的数据(李新)
    int id=5;
    int newId=7;
    int newAge=22;
    QString newName("李白");
    QString sql = QString("update empp set id=%1,age=%2,name='%3' where id=%4").arg(newId).arg(newAge).arg(newName).arg(id);
    query.exec(sql);

#endif

#if 1
    //删--删除id为8的数据
    int id=8;
    QString sql = QString("delete from empp where id = %1").arg(id);
    query.exec(sql);

#endif

//断开数据库连接
db.close();
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Linux系统中,Qt提供了一个名为Qt SQL的块,用于连接和操作各种数据库。要在Linux系统中使用Qt连接数据库,你可以按照以下步骤进行操作: 1. 首先,确保你已经正确安装了Qt开发环境和所需的数据库驱动程序。常见的数据库驱动程序有MySQL、PostgreSQL、SQLite等。可以通过Qt的官方网站或软件包管理器获取这些驱动程序。 2. 在Qt项目中,你需要在.pro文件中添加对Qt SQL模块的引用。在.pro文件中添加如下行: ``` QT += sql ``` 3. 在代码中,你需要包含Qt SQL模块的头文件: ``` #include <QtSql> ``` 4. 创建一个数据库连接对象,并设置连接参数。例如,如果你要连接到MySQL数据库,可以使用以下代码: ``` QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); // 设置主机名 db.setDatabaseName("database_name"); // 设置数据库名称 db.setUserName("username"); // 设置用户名 db.setPassword("password"); // 设置密码 ``` 5. 打开数据库连接: ``` if (db.open()) { // 连接成功 } else { // 连接失败 } ``` 6. 一旦成功连接到数据库,你可以执行各种SQL查询和操作。例如,你可以使用QSqlQuery类执行SELECT、INSERT、UPDATE等操作。 这些是在Linux系统中使用Qt连接数据库的基本步骤。根据你要连接的数据库类型和具体需求,可能需要进一步设置和操作。你可以参考Qt的官方文档和示例代码,以获得更详细的信息和实例。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值