QT数据库操作学习笔记1

一、SQL模型的类

模型/视图结构:进行数据和界面的分离。

模型/视图结构分为三部分:
1、模型((model) :与数据源通信,并为其他部件提供接口。与底层的数据打交道。

2、视图(view):从模型中获取用来引用数据条目的模型索引。与显示打交道。

3、代理(delegate):负责绘制数据条目。
当一个项目被编辑,委托与模型直接利用模型索引进行通信。各个部件之间使用信号和槽的方式进行通信。

二、qt核心:
1、信号与槽
2、事件——鼠标事件、键盘事件、重绘事件、定时器事件
3、对象树

三、qt界面:
1、样式表
2、布局管理器
3、资源文件

三、QSqlQuery、QSqlQueryModel、QSqITableModel的区别.

1、 QSqlQuery
可以用来执行SQL语句和获得执行结果的。

2、QSqlQueryModel
提供了一个sql查询结果的只读数据模型。它从查询QSqIlQueryModel获取数据。可以方便的用于在QListView, QTableView,QTreeView等各种view上展示数据。但它是只读的,不能编辑。
3、QsqITableMode
继承于QSqlQueryModel,与QSqlQueryModel功能相似。比QSqlQueryModel的限制在于不能是任意sql语句,只是对单个数据表操作。拓展在于在各种view上展示表格数据的同时,还允许用户进行编辑操作。

四、new一个对象

用法

 (1)、在头文件创建的类下进行声明,未定义,不占空间放于私有private:下。
 QSqlQueryModel *model;
 在源文件的构造函数中进行定义,分配空间。
 model=new QSqlQueryModel(this);
 (2)、直接定义和声明,如果在源文件的构造函数中,生命周期到析构函数执行。此时位于构造函数外的函数无法使用生成的对象。
 QSqlQueryModel *model=new QSqlQueryModel;

五、QSqlQueryModel类常用函数。

为SQL的结果集提供了一个只读的数据模型。
1、setQuery():设置查询语句。用法: model->setQuery("select * from student");

2、Query():设置查询语句.

3、Record():获取记录

(1)、单个记录的获取与输出


(2)、全部记录的获取与输出

            QSqlRecord record =model->record(1);//获得第一条记录
            qDebug()  <<"the second record is:"<<record<<Qt::endl;

4、 Rowcount():记录的行数。用法: int row =model->rowCount();

5、columnCount():记录的列数。用法:int column =model->columnCount();//获得列数
6、 lndex():指定记录的指定字段的索引工. 

7、Clear():清空结果集
.8、setHeaderData():设置表头

 model->setHeaderData(0,Qt::Horizontal,tr("id"));
 model->setHeaderData(1,Qt::Horizontal,tr("name"));

l六、QSqlTableModel函数

提供了一个可读写的数据模型用于操作表,例如修改,插入,删除,查询,和排序;
1、settable()//指定数据库表rowCount ()/返回行数. columnCount ()返回列数· removeColumns()lI删除列

 model_table->setTable("student"); //重新关联表  
  "student"相当于select * from student


2、submitAll (),I提交所有被修改的数据,然后修改的数据被保存在数据库中
3、revertAll ()/I撤销所有的修改   ps:修改提交和确认删除后无法在撤销
4、setFilter()l筛选,相当于SQL中的WHERE语句

5、排序  

(1)、升序
model_table->setSort(0,Qt::AscendingOrder);  
  model_table->select();
(2)、降序  
model_table->setSort(0,Qt::DescendingOrder);
 model_table->select();

使用的数据库SQL

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值