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

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.dtcms.com/a/360466.html

相关文章:

  • 【嵌入式】【电机控制】基础知识列表
  • K8s调度核心:从Pod分配到节点优化
  • MATLAB R2010b系统环境(四)MATLAB帮助系统
  • LeetCode 每日一题 2025/8/25-2025/8/31
  • 模拟在线测试六线测试相关知识
  • 如何快速学习新技能
  • io进程线程;标准IO;0831
  • Java全栈开发面试实录:从基础到微服务架构的深度解析
  • Augment 宣布 Auggie CLI正式向所有用户开放
  • 利用DeepSeek编写验证xlsx格式文件中是否启用sharedStrings.xml对读写效率影响python程序
  • Ring Buffer解析
  • Thread、ThreadLocal、ThreadLocalMap
  • 用户态 kill 与 pthread_kill 的区别?
  • 动态链表:结构体模拟单链表的终极指南
  • ts 定义类型
  • Linux学习:简单模拟实现C++中的线程类
  • C++算法学习专题:前缀和
  • 【Linux网络编程】应用层协议-----HTTP协议
  • PostgreSQL表膨胀的危害与解决方案
  • More Effective C++ 条款19:理解临时对象的来源(Understand the Origin of Temporary Objects)
  • centos 7 安装docker、docker-compose教程
  • AI 编程新玩法:用 yunqi-saas-kit 框架制作小游戏,看广告变现轻松赚钱​
  • 国产数据库之TiDB:博采众长
  • Ruoyi-vue-plus-5.x第二篇MyBatis-Plus数据持久层技术:2.2 分页与性能优化
  • [嵌入式embed]Keil5项目提示Missing: Compiler Version 5
  • 工业互联项目总结:UART
  • Backroom:信息代币化 AI 时代数据冗杂的解决方案
  • 漏洞基础与文件包含漏洞原理级分析
  • 使用 Python mlxtend库进行购物篮分析、关联规则
  • 软考中级习题与解答——第一章_数据结构与算法基础(3)