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"); //数据库服务器IPdb.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);
}