QT+MYSQL数据库处理

1、打印Qt支持的数据库驱动,看是否有MYSQL数据库驱动

    qDebug() << QSqlDatabase::drivers();

有打印结果可知,没有MYSQL数据库的驱动

2、下载MYSQL数据库驱动,查看下面的文章配置,亲测,可以成功

Qt6 配置MySQL数据库的驱动_qt6 mysql-CSDN博客

3、连接数据库,如果打印open success说明MYSQL环境安装成功。

    QSqlDatabase db =QSqlDatabase::addDatabase ( "QMYSQL") ;//连接数据库
    db.setHostName("127.0.0.1"); //数据库服务器IP
    db.setUserName("root") ; //数据库用户名
    db.setPassword("1234");//密码
    db.setDatabaseName("qtDb") ; //使用哪个数据库
    //打开数据库
    if( !db.open())//数据库打开失败
    {
         qDebug()<<"open err ";
        return;
    }
    qDebug()<<"open success ";

 4、我创建的表名是 test,然后有两个字段,使用的一些sql语句如下

show databases;

create database qtDb;
use qtDb;

create table test(
name character(20),
age int);

select * from test;

insert into test values("lh",18);

update test set age=20 where name="lh" limit 1;

5、创建QT的UI界面

6、给ui界面控件命名

7、插入,生成插入按钮的槽函数

void Widget::on_insertPushButton_clicked()
{
    QString namestr = ui->insertNameLineEdit->text();
    int num = ui->insertAgeLineEdit_2->text().toInt();
    QString str = QString("insert into test values('%1', '%2')").arg(namestr).arg(num);
    QSqlQuery query;
    query.exec(str);

    qDebug()<<"insert success ";
}

8、测试插入函数,测试成功

9、查询代码, 将name作为关键词查询

void Widget::on_selectPushButton_2_clicked()
{
    QString searchName = ui->selectNameLineEdit_3->text();
    QString str = QString("select *from test where name = '%1'").arg(searchName);
    QSqlQuery query;
    query.exec(str);

    QString name;
    int age;
    while (query.next())
    {
        name = query.value(0).toString();
        age = query.value(1).toInt();
    }

     // QString str2 = "name:" + name +"\r\n" +"age:" + QString::number(age);
    QString str2 = QString("name:%1 \n age:%2").arg(name).arg(age);
    ui->selectTextEdit->setText(str2);
}

10、查询表格中所有数据

void Widget::on_selectAllPushButton_3_clicked()
{
    QString str = QString("select *from test");
    QSqlQuery query;
    query.exec(str);

    QString name;
    int age;
    QString text;
    while (query.next())
    {
        name = query.value(0).toString();
        age = query.value(1).toInt();

        text = text + "name:" + name +"   " +"age:" + QString::number(age) +"\r\n";
    }
    ui->selectAllTextEdit_2->setText(text);
}

11、完整工程代码

链接:https://pan.baidu.com/s/1ocgu1S8-FSFZFz4X8w7aRg?pwd=8888 
提取码:8888

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值