qt使用mysql数据库(自学笔记)

首先在qt中使用数据库,需要我们根据qt源码自行编译库,具体编译细节请参考Qt 中编译数据库驱动 | 爱编程的大丙 (subingwen.cn)(如有侵权,请联系我删除)。

前提:在mysql添加一个db1数据库,在db1内添加一个fam表:

create database db1;
use db1;
create table fam(
    -> id int primary key,
    -> name varchar(20),
    -> address varchar(40),
    -> age int,
    -> gender varchar(20));
mysql> show tables;
+---------------+
| Tables_in_db2 |
+---------------+
| fam           |
+---------------+
1 row in set (0.00 sec)

mysql> desc fam;
+---------+-------------+------+-----+---------+-------+
| Field   | Type        | Null | Key | Default | Extra |
+---------+-------------+------+-----+---------+-------+
| id      | int         | NO   | PRI | NULL    |       |
| name    | varchar(20) | YES  |     | NULL    |       |
| address | varchar(40) | YES  |     | NULL    |       |
| age     | int         | YES  |     | NULL    |       |
| gender  | varchar(20) | YES  |     | NULL    |       |
+---------+-------------+------+-----+---------+-------+
5 rows in set (0.00 sec)
mysql> insert into fam (id,name,address,age,gender) values(0,'tom','shanghai',20,'male');
Query OK, 1 row affected (0.00 sec)

mysql> insert into fam (id,name,address,age,gender) values(1,'liutao','shanghai',23,'male');
Query OK, 1 row affected (0.00 sec)

mysql> insert into fam (id,name,address,age,gender) values(2,'bin','suzhou',25,'male');
Query OK, 1 row affected (0.00 sec)

mysql> insert into fam (id,name,address,age,gender) values(3,'hong','suzhou',34,'female');
Query OK, 1 row affected (0.00 sec)
mysql> select * from fam;
+----+--------+----------+------+--------+
| id | name   | address  | age  | gender |
+----+--------+----------+------+--------+
|  0 | tom    | shanghai |   20 | male   |
|  1 | liutao | shanghai |   23 | male   |
|  2 | bin    | suzhou   |   25 | male   |
|  3 | hong   | suzhou   |   34 | female |
+----+--------+----------+------+--------+
4 rows in set (0.00 sec)

mysql>

好了,现在我们数据库里有这样一个表:

下面我们通过qt写一个小demo实现对数据库的一些简单操作:

1.首先在pro文件中添加 sql ;

QT       += core gui sql

ui界面设计如下:

具体功能:通过connect连接数据库,show显示数据库内具体的数据,add将各个lineedit内的信息添加到数据库内的表内,update进行表内数据更新。

头文件如下:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H


#include<QSqlDatabase>
#include<QSqlError>
#include<QDebug>
#include <QMainWindow>
#include<QMessageBox>
#include <QSqlQuery>

QT_BEGIN_NAMESPACE
namespace Ui { class MainWindow; }
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();

private slots:
    void on_pushButton_5_clicked();

    void on_pushButton_6_clicked();

    void on_pushButton_clicked();

    void on_pushButton_2_clicked();

    void on_pushButton_4_clicked();

    void on_pushButton_3_clicked();

private:
    Ui::MainWindow *ui;
    QSqlDatabase db;


};
#endif // MAINWINDOW_H
</
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值