Qt学习笔记之数据库的访问

//写在前面
这里推荐使用navicat for mySQL软件管理数据库。通过navicatke可以清楚的看到该数据库中的每个表的结构和成员,以便于访问数据库,并查询相关的数据。

//数据库中表的访问
//其实查询数据库的过程就是一个查表的过程,通过用户输入的数据开始依次查询到用户想要的数据

if(createConnection()){

       QSqlQuery query("SELECT * FROM t_stud_info"); //t_stud_info是一个表单
       while(query.next())
       {
           QString schoolID = query.value(0).toString();
           if(schoolID == str)
           {
               QSqlQuery query1("SELECT * FROM t_stud_course_info");//t_stud_course_info是一个表单
               while(query1.next())
               {
                   QString ID = query1.value(1).toString();
                   if(ID == str)
                   {
                       QSqlQuery query2("SELECT * FROM t_courses");//t_courses是一个表单
                       while(query2.next())
                       {
                            QString courseID = query2.value(0).toString();
                            if(courseID == query1.value(2).toString())
                            {
                                //课程名称
                                course[i] = query2.value(1).toString();
                                //成绩
                                grade[i] = query1.value(3).toString();
                                //学分
                                xuefen[i] = query2.value(2).toString();
                                i++;
                            }
                       }
                   }
               }
               break;
           }
       }

如例子,我这个数据库中包涵三个表t_stud_info、t_stud_course_info、t_courses。我通过查找这三个表中的数据,就能找出用户所需要的全部数据

//关于query.value(0)的说明
这是一个Qquery类的变量,就是你每访问一个数据库中的表的时候,就要重新定义一个Qquery类的变量,如上例中我总共定义了三个query,query1,query2。
而query.value(0)指的就是这个表单中的第一列数据,依此类推,第二列就是query.value(1)、第三列就是query.value(2)……

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Qt线程池访问数据库是一种在Qt框架下实现多线程数据库访问的技术。Qt线程池允许我们在单个应用程序同时处理多个并发的任务,通过管理线程的创建和销毁,提供了一个高效的线程管理机制。 在访问数据库时,我们可以将数据库操作作为一个任务提交给线程池处理。首先,我们需要在应用程序创建一个线程池实例,并设置线程池的最大线程数和线程池的工作模式。然后,我们可以将数据库操作封装为一个Runnable对象,该对象在执行时会访问数据库并完成对数据库的相关操作。 当我们需要进行数据库操作时,我们可以通过调用线程池的submit方法来提交一个Runnable对象。线程池会根据设置的最大线程数进行线程的创建和任务的执行。执行完毕后,线程会被释放,可以用于处理其他任务。 在访问数据库时,需要注意以下几点:首先,保证线程安全,避免多个线程同时访问同一个数据库连接或执行同一个事务。其次,需要合理管理数据库连接,确保连接的正确释放,避免资源泄露。另外,可以使用线程间通信机制,如信号与槽机制,来实现线程之间的数据交换与同步。 总的来说,Qt线程池访问数据库提供了一种方便高效的多线程数据库访问方式,通过合理管理线程和数据库连接,可以确保程序的稳定性和性能。同时,需要注意线程安全和资源管理的问题,以保证数据库操作的正确性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值