QT-8-使用SQL数据库

数据库(掌握)

Qt本身并没有数据库,但是Qt支持市面上绝大多数主流的数据库的连接,前提是运行Qt的电脑上也有对应的数据库产品。

在嵌入式领域、纯软件客户端领域都在使用SQLite数据库作为程序本地数据存储的方式。原因在于SQLite数据库十分轻巧,因此Qt(Qt5以上)中内置了SQLite数据库,不需要单独安装和配置。

Qt支持以下数据库的连接,以下是各个数据库的驱动名称:

QT-8-使用SQL数据库

除了SQLite之外,其它的数据库都需要单独安装和配置驱动程序。并且Qt为这些数据库统一了操作的API,基本上可以做到操作所有的数据库都使用同一套语法。

需要注意的是,使用数据库之前,要在项目配置文件.pro中引入sql模块。

QT-8-使用SQL数据库

连接数据库

QSQLDatabase:数据库连接类,并不表示数据库本身。

QSqlError:数据库错误信息类,数据库所有的错误信息都通过这个类从数据库底层传递到Qt程序中。

数据库管理软件

QT-8-使用SQL数据库

数据库连接成功后,可以在构建目录中找到数据库文件。

QT-8-使用SQL数据库

QT-8-使用SQL数据库

后续可以使用SQLiteSpy打开数据库文件。

创建表

创建表使用的是标准的SQL语句,SQL语句可以操作市面上几乎所有的主流数据库,仅仅有部分细小的差别(数据类型、函数)等。

根据之前设计的数据库,编写SQL语句如下:

QT-8-使用SQL数据库

SQLiteSpy软件支持运行SQL语句,可以先在里面尝试运行SQL语句。

QT-8-使用SQL数据库

执行SQL语句结束后,可以展开左侧的表,查看相关表信息是否与预期一致。

QT-8-使用SQL数据库

插入数据

需要先获得用户在Qt界面上输入的数据,然后组装成SQL语句后,经Qt发送到数据库中执行,有两种方法:

  1. 拼接SQL语句

QT-8-使用SQL数据库

这种方案有两大劣势,第一拼接的过程十分繁琐,第二这种方式并不安全(SQL注入问题)。因此在实际开发中并不建议使用这种方式。

  1. SQL语句预处理

  2. Oracle风格:使用:列名作为参数占位符

QT-8-使用SQL数据库
  • ODBC风格:使用?作为参数占位符

QT-8-使用SQL数据库

注意,这种方式在绑定参数的时候必须按照占位符出现的顺序绑定。

删除操作&更新操作

需要注意的是,QSqlQuery的执行结果不表示具体数据操作的结果,只表示该SQL语句是否可以得到正常的执行。

查询操作

  • 查询所有的数据

SELECT * FROM teacher;

  • 查询某个id的人在不在,这是一个普通的WHERE子句的限定查询。
  • 模糊查询

模糊查询使用关键字LIKE,搭配两个通配符:_ %

下划线表示一个字符,百分号表示0个-若干个字符。

例如,查询姓张的人。

SELECT * FROM teacher WHERE name LIKE ‘张%’;

例子,查询庆字辈的人。

SELECT * FROM teacher WHERE ename LILE ‘_庆%’;

需要注意的是,模糊查询的通配符不要跟参数的占位符一样在预处理的SQL语句中出现,应该跟随绑定的数据出现。

Original: https://blog.csdn.net/weixin_45963260/article/details/123002462
Author: 不欺暗室__
Title: QT-8-使用SQL数据库

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/816716/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球