Qt 连接MySql进行增删改查

Qt 连接MySql进行增删改查

QSqlDatabase

QSqlDatabase 是Qt自带的一个连接数据库的类,我们可以直接使用它来进行对数据库的连接和操作。

1、在使用数据库之前首先要将数据库连接,那我们先看它的静态构造类

static QSqlDatabase addDatabase(const QString& type,const QString& connectionName = QLatin1String(defaultConnection));

// 这个静态类可以直接获取到QSqlDatabase 对象
// const QString& type 第一个参数指的是连接的数据库类型,通常有这几种常用的,QPSQL,QMYSQL,QOCI,QODBC,QDB2,QSQLITE,QIBASE
// const QString& connectionName 第二个参数指的是连接名,可自行定义
// eg: 我连接的是MYSQL数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL",name);

2、获取到对象之后,则需要配置对应的IP,端口,用户名,密码,库名

db.setHostName("ip");  			 // IP
db.setPort(port);				 // 端口
db.setUserName("username");		 // 用户名
db.setPassword("password");      // 密码
db.setDatabaseName("database");  // 库名

3、配置好对应参数之后,则可打开连接,我们看源码

 bool open()
 // 该方法则是打开连接的方法,同时会返回bool类型,反馈我们是否连接成功,如果失败,则需要检查一下上一步配置是否正确

4、至此,数据库连接成功,连接成功之后自然需要对数据库进行增删改查的操作,这时需要使用 QSqlQuery 类;

QSqlQuery

首先,我们看QSqlQuery构造函数

QSqlQuery::QSqlQuery(const QSqlDatabase &db)

// 这里需要我们上一步创建的 QSqlDatabase 对象

创建了QSqlQuery对象之后,则可以进行增删改查的工作。

// 方式一
QSqlQuery query(QSqlDatabase &db);
query.prepare("INSERT INTO person (id, forename, surname) "
               "VALUES (:id, :forename, :surname)");
query.bindValue(":id", 1001);
query.bindValue(":forename", "Bart");
query.bindValue(":surname", "Simpson");
query.exec();


// 方式二
QSqlQuery query(QSqlDatabase &db);
query.prepare("INSERT INTO person (id, forename, surname) "
               "VALUES (:id, :forename, :surname)");
query.bindValue(0, 1001);
query.bindValue(1, "Bart");
query.bindValue(2, "Simpson");
query.exec();

// 方式三
QSqlQuery query(QSqlDatabase &db);
query.prepare("INSERT INTO person (id, forename, surname) "
               "VALUES (?, ?, ?)");
query.bindValue(0, 1001);
query.bindValue(1, "Bart");
query.bindValue(2, "Simpson");
query.exec();

// 方式四
QSqlQuery query(QSqlDatabase &db);
query.prepare("INSERT INTO person (id, forename, surname) "
              "VALUES (?, ?, ?)");
query.addBindValue(1001);
query.addBindValue("Bart");
query.addBindValue("Simpson");
query.exec();

// 以上的 query.exec() 方法会反馈bool类型,用于判断执行的SQL语句是否成功
bool QSqlQuery::exec()

删,改

// 方式一 使用QString类的机制组合SQL
QSqlQuery query(QSqlDatabase &db);
int id = 1;
QString str = QString("DELETE FROM test WHERE id = %1").arg(id);
query.exec(str);

// 方式二 直接使用 + 符号组合
QSqlQuery query(QSqlDatabase &db);
QString id1 = "2";
QString str1 = "DELETE FROM test WHERE id = " + id1;
query.exec(str1);

// 方式三 使用占位符的方式
QSqlQuery query(QSqlDatabase &db);
query.prepare("DELETE FROM test WHERE id = ?");
query.addBindValue(3);
query.exec();


// 以上只给出了删除的例子,但是修改组建SQL的几种方式是一样的。

QSqlQuery query(db);
QString str = "SELECT * FROM test";
query.exec(str);
// 通过next() 方法获取查询到的每行数据
while(query.next())
{
    // value(int) 是按照查询的字段顺序来获取对应的结果,如果查询 * 则按照表的字段顺序
    qDebug() << "id:" << query.value(0).toString() << " age:" << query.value(1).toString() << " name:" <<         	 	query.value(2).toString();
}

// 若查询中需要有条件判断,则也可以按照上面删除写的几种方式连接对应的查询条件。

至此,Qt连接数据库进行增删改查的功能已经实现。

你知道的越多,你不知道的越多,我们下期见。

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
QT连接MySQL数据库并实现增删改查操作,可以按照以下步骤进行: 1. 首先,确保已经正确安装了MySQL数据库QT开发环境(如VS2015)。 2. 在QT中,使用QSqlDatabase类连接MySQL数据库。可以通过以下代码初始化数据库连接: QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); db.setHostName("localhost"); // 主机名 db.setDatabaseName("database_name"); // 数据库名 db.setUserName("username"); // 用户名 db.setPassword("password"); // 密码 3. 使用QSqlQuery类执行数据库操作。比如,可以使用以下代码实现查询操作: QSqlQuery query; query.exec("SELECT * FROM table_name"); while (query.next()) { QString column1 = query.value(0).toString(); QString column2 = query.value(1).toString(); // 处理查询结果 } 4. 实现插入操作可以使用以下代码: QSqlQuery query; query.prepare("INSERT INTO table_name (column1, column2) VALUES (:column1, :column2)"); query.bindValue(":column1", value1); query.bindValue(":column2", value2); query.exec(); 5. 实现删除操作可以使用以下代码: QSqlQuery query; query.prepare("DELETE FROM table_name WHERE column = :column"); query.bindValue(":column", value); query.exec(); 6. 实现更新操作可以使用以下代码: QSqlQuery query; query.prepare("UPDATE table_name SET column = :new_value WHERE column = :old_value"); query.bindValue(":new_value", new_value); query.bindValue(":old_value", old_value); query.exec(); 7. 最后,在完成数据库操作后,要记得关闭连接: db.close(); 以上是使用QT和VS2015连接MySQL数据库并实现增删改查的基本步骤与代码示例。根据实际需求和表结构,可以对以上代码进行修改和扩展。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值