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

QT Sqlite数据库-教程002 查询数据-下

【1】数据库查询的优化:prepare

prepare语句是一种在执行之前将SQL语句编译为字节码的机制,可以提高执行效率并防止SQL注入攻击。

【2】使用prepare查询一张表

QString myTable = "myTable" ;
QString cmd = QString("SELECT  * FROM %1 ORDER BY id").arg(myTable.c_str());
  
QSqlQuery query(m_db);
query.setForwardOnly(true);
query.prepare(cmd);
bool bRet = query.exec();
if(bRet){
      qDebug()<<"select:"<<"success";
}
else{
      qDebug()<<"select:"<<"fail";

}
while (query.next()) {            
    int id = query.value(0).toInt();
     QString field1 = query.value(1).toString();
     QString field2 = query.value(2).toString();
     QString field3 = query.value(3).toString();
     QString field4 = query.value(4).toString();
     QString field5 = query.value(5).toString();
     qDebug()<<field1<<field2<<field3<<field4<<field5;
}
return bRet;

【3】setForwardOnly

setForwardOnly方法用于设置查询模式为只向前移动‌。当设置为true时,查询结果只能向前移动,不能向后移动或随机访问,这样可以提高查询效率并减少内存使用。

优点:

在prepare之前调用setForwardOnly(true)可以禁用缓存,从而减少内存使用并提高性能

相关文章:

  • 操作系统导论——第19章 分页:快速地址转换(TLB)
  • Vue.js 项目中 vue.config.js 常用配置项解析
  • bash的特性-命令和文件自动补全
  • Linux - 系统服务管理(Systemd)
  • qt中的正则表达式
  • 【记录】Docker 镜像
  • Java-面向对象
  • ffprobe是如何处理命令行参数的.
  • BFD:网络链路检测与联动配置全攻略
  • 易境通WMS系统代理仓解决方案:让代理仓管理无后顾之忧!
  • 07软件测试需求分析案例-修改用户信息
  • 手机端可部署的开源大模型; 通义千问2.5训练和推理需要的内存和外存
  • 【DDR 内存学习专栏 1.4 -- DDR 的 Bank Group】
  • 机器学习:让数据开口说话的科技魔法
  • 网络基础和socket
  • 面试宝典(C++基础)-01
  • AlexNet神经网络详解及VGGNet模型和
  • 深度学习中的数学基础:从向量到概率的全面解析
  • 测试第三课-------自动化测试相关
  • 第十九讲 XGBoost 二分类模型案例(遥感数据识别玉米与小麦地块)
  • 特朗普:泽连斯基的言论对和平谈判非常有害
  • 欧盟数字法开出首张罚单:苹果和Meta合计被罚7亿欧元
  • 上海小朋友喜欢读什么书?来看这份“少年儿童阅读报告”
  • 乌克兰关切有中国人在俄军中服务,外交部:坚决反对无端指责
  • 亮相!神二十乘组与中外媒体记者集体见面
  • 钟芳玲|戴耳环的莎士比亚