17 数据库和xml(xml还没看)

 讲的很好!!!

驱动层:桥接

SQL层:访问数据库

1)连接数据库 QSqlDatabase,查看支持的数据库类型,plugins/sqldrivers里也可以看到驱动插件文件

2)和数据库交互 QSqlQuery

其它几个类都是辅助类,

用户接口层:将数据放到窗口上

 

连接什么类型数据库(addDatabase),哪台主机的哪个数据仓库,并用户名和密码(端口),最后需要打开

QSqlDatabase:这个应该叫connect,就是一个数据库连接,也可以有几个数据库连接。

 

特别的:可以在内存中创建数据库,只在运行期间有效

 

如果使用具体数据库的名称,如my.db,就可以在项目目录中创建数据库!!!

387页

QSqlQuery可以看成是指向整个数据库表(也可以理解为二维数组)的对象,之前前一行内容吗?

query.value(0).toInt()、query.value(1).toString()就可以取得值了

也有多个连接的情况389页,这里是连接了两个数据库

QSqlQuery怎么交互1?用exec接口就可以实现增、删、改、查了

如果exec返回错误,那么可以用lastError()来查看(这些都只是辅助,记住主线就行了)

QSqlQuery怎么交互2?用多个接口next(), first(), last(), previous(), seek(),以及如下:

QSqlQuery提高遍历速度:setForwarOnly

当前行索引:at

当前记录:record,可以通过字段取值:record.value("name").toString();

如何取得字段名:field,392页

插入多条语句:393页

 

事务:用于保证一个复杂操作的原子性,

1)事务开始

2)事务提交

3)事务回滚

394页,讲的有点少。

 

接下来就是让数据库在窗口中显示和操作:无非是model、view,就要看用哪个model或哪个view了

1)QSqlQueryModel:

QSqlQueryModel(名字记一下,就是在前面的QSqlQuery后面添加了model),一个setquery就可以把数据集放到model中了

QTableView呢,一个setModel就把Model放到view中显示了,公共没几句话。

QSqlQueryModel的query()函数可以返回QSqlQuery对象!!!这样就可以操作数据库了。

 

2)QSqlTableModel:可以编辑表格(什么时候用上面的,什么时候用这个,没说)

引申记忆:因为有table了,所以可编辑了

因为可以编辑了,所以有个setEditStrategy(),

setTable,select

编辑的提交策略:3种情况,398页。立即提交、换行提交、submitAll或revertAll提交。

可以取得QSqlDatabase对象来进行回滚或提交操作!

插入行、删除行等...

关系数据表,先不详细看了。

 

posted @   妖山鬼店  阅读(34)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
点击右上角即可分享
微信分享提示