当前位置: 首页 > java >正文

Qt QML连接数据库如何解决重复创建连接问题

之前有写过用QML连接数据库的文章,后面项目做大了之后才发现当类反复的实例化时,由于init()函数是在构造函数中被调用的原因,qt会反复的创建数据库连接,并发出警告。

所以必须要解决这个问题,但其实解决方法也很直接简单,建立一个固定的连接就行了:

void MusicInfo::init()
{if(QSqlDatabase::contains("music")) {    //在建表前检查连接池中是否存在同名连接db=QSqlDatabase::database("music");    //存在就直接取出连接赋值给db}else{db=QSqlDatabase::addDatabase("QSQLITE", "music");    //不存在则创建连接}db.setDatabaseName("music.db");if(!db.open()){qWarning()<<"打开数据库失败"<<db.lastError().text();return;}QSqlQuery query(db);    //指定连接初始化......
}

这样一来,就能够只使用特定连接的数据库了,至于连接名"music"是按自己需求随意写的,原文不方便再次修改了,故再开了一篇单独码了下,原文链接:Qt6 QML如何用SQLite数据库存储读取ListModel数据(解决重复创建连接问题)-CSDN博客

http://www.xdnf.cn/news/19465.html

相关文章:

  • 大话 IOT 技术(3) -- MQTT篇
  • Qt中使用 GStreamer 播放视频文件
  • HikariCP vs DBCP2 vs Tomcat JDBC:多场景数据库连接池方案对比与实践指南
  • 局域网中使用Nginx部署https前端和后端
  • Qt中解析XML文件
  • word中插入字符后会自动删除后面的字符
  • Visual Studio Code中launch.json的解析笔记
  • Prometheus之启用--web.enable-remote-write-receiver
  • 对于一个多层感知机,参数初始化的时候不是已经把权重的范围根据方差进行优化过了,为什么还要进行正则化惩罚过大权重
  • springboot整合minio实现上传下载搭建minio
  • Unity转抖音小游戏重点摘记
  • 学生请假就餐系统
  • 计算机网络---http(超文本传输协议)
  • XPlayer播放器APP:安卓平台上的全能视频播放器
  • LeetCode每日一题,2025-8-31
  • TFS-2002《Analysis and Efficient Implementation of a Linguistic Fuzzy C-Means》
  • 【量化回测】backtracker整体架构和使用示例
  • Rsync 数据同步工具及实时同步配置
  • SAP PP中的MRP
  • 【OpenGL】LearnOpenGL学习笔记18 - Uniform缓冲对象UBO
  • 模型系列(篇三)-Llama
  • vscode克隆远程代码步骤
  • 合约服务架构-OOP 方式
  • leetcode 371 两个整数之和
  • 微软开源TTS模型VibeVoice,可生成 90 分钟4人语音
  • TFS-1996《The Possibilistic C-Means Algorithm: Insights and Recommendations》
  • 一些八股总结
  • 如何快速学习新技能
  • Redis 7.0 高性能缓存架构设计与优化
  • [Android] UI进阶笔记:从 Toolbar 到可折叠标题栏的完整实战