基于嵌入式Qt下的MySQL数据库设计与开发

2020-06-29 07:16韩改宁李永锋高伊腾
微型电脑应用 2020年5期
关键词:嵌入式

韩改宁 李永锋 高伊腾

摘 要:由于嵌入式设备中可使用的资源相对较少,针对嵌入式系统下的数据库设计问题,利用Qt和MySQL实现数据库开发,从而解决数据库大,占用资源多的问题。Qt提供的QtSql模块实现Qt数据库应用程序的关联,采用MySQL轻型数据库,支持Windows和Linux等操作系统,同时提供ODBC 接口。利用Qt开发平台,通过Qt中QSql模块及相关数据库驱动,创建面向应用的数据库系统开发,并通过SQL语句进行数据库交互操作,然后通过交叉编译器,将其移植到ARM Cortex-A8开发板上,从而实现嵌入式下的数据库系统的设计与开发。

关键词:嵌入式;Qt;QtSQL模块;MySQL数据库;ARM Cortex-A8

Abstract:Because resources which can be used are relatively few in the embedded devices. For embedded system, a database is designed in this paper, by using Qt and MYSQL, to solve problems of large volume of database and occupying more resources. QtSql module provides a seamless connection to database and Qt applications, MYSQL is used for lightweight database, to support Windows and Linux operating systems and provide ODBC interface. In the paper, Qt development platform is used to create an application database system development through QtSql modules and related database driver, and interact with the database through SQL statements. Then, it is compiled through cross-compiler, and transplanted to ARM Cortex-A8 development board in order to realize the development and design of the database system in embedded environment.

Key words:embedded;Qt;QtSQL model;MYSQL database;ARM Cortex-A8

0 引言

数据库技术是计算机数据处理与信息管理系统的核心,研究和管理的对象是数据,所以数据库技术是对数据的统一组织和管理。一般在嵌入式开发中,嵌入式数据库应用到嵌入式设备中,要求占用内存小、运行速度快、执行效率高等,这样才可以降低开设备成本,提高设备效能。

由于Qt是一个跨平台的C++图形用户界面应用程序设计框架,在建立好的Qt环境下,在建立基于ARM开发板的交叉编译环境,开发出可以移植到ARM开发板上的应用程序。

1 Qt中的SQL数据库

Qt中提供了不同的数据库接口,为不同层次的用户提供了丰富的数据库操作类。QtSql模块由驱动层、SQL接口层和用户接口层3部分组成,各层次功能如表1所示。

2 Qt中创建数据库

2.1 创建连接

通过驱动层或者SQL接口层提供的类来访问数据库,首先创建并打开数据库连接。在应用程序中,可以向相同的数据库创建多个连接。

2.2 使用SQL语句操作

Qt中支持SQL语句。有两种方式创建数据库表,一种是利用mySql Comman LineClient端,执行SQL语句建立;一种是使用SQL模型类,利用Qt提供MVC模式,比如QSqlQueryModel和QSqlTableModel类等进行数据库操作,而且可以将结果在表格中显示出来。

2.2.1 使用SQL语句操作数据库

数据库连接成功后,首先要创建student数据库表, 包括学生的学号、姓名、性别、年龄、学院、平均成绩。

(1) 利用QSqlQuery类提供SQL语句操作:

然后向表中插入記录,利用SQL语句操作:

query.exec("insert into student values (1001, ‘王浩,‘男,20,‘计算机学院,90)");

query.exec("insert into student values (1002,‘张红,‘女,20,‘计算机学院,92)");

(2) 利用MySql命令行方式实现数据库表的创建,如图2所示。

(a) 查询创建的数据库

(b) 查询该数据库下包含的数据库表

(c) 显示数据库表结构

(d) 显示数据库表数据

最后,对数据库表进行遍历操作,利用SQL语句,如插入记录、显示表记录、查询、定位等。

第一种方法不需要单独配置其他数据库,直接在Qt开发平台上,对数据库表进行创建和操作。该方法适合于Qt 下的所以数据库操作。

第二种方法是在Qt平台之外,安装MySql数据库,然后通过CMD命令的方式创建数据表结构及添加表数据库。该方法对数据库表操作直观,但是需要安装程序。

2.2.2 Qt实现数据库表的显示

Qt中提供了更简单的数据库操作和数据显示模型,基于MVC(Model-View-Control)架构,Qt下提供多种Model模型和View视图方式,在此,通过两个Model模型进行数据表管理。

(1) QSqlQueryModel类对数据表显示

创建QSqlQueryModel的实例modelQuery,再利用SQL语句查询student表的內容,再建立了一个视图view,通过视图的setModel方法添加模型。

3 学生信息管理数据库设计

按照上述数据库连接与SQL语句操作方法,利用Qt中QSqlTableModel类模型对数据库进行增加、删除、修改及查询等操作。登录界面如图3所示,数据库主界面如图4所示,数据库表操作如图5-图7所示。

4 数据库系统移植

首先,在ARM Cortex-A8开发板上配置环境,移植操作?系统,然后通过交叉编译器arm_linux_gcc进行编译,最后,将交叉编译后生成的可执行文件移植到开发板上并运行。学生信息管理平台效果如图8所示。

5 总结

针对嵌入式系统下的数据库设计问题,本设计利用Qt和MySQL实现数据库开发,从而解决数据库大,占用资源多的问题。通过Qt提供的QtSql模块实现数据库关联,利用SQL语句实现数据库表的创建和添加记录,通过QSqlQueryModel类和QSqlTableModel类两种模型进行数据管理,采用QTableView类视图实现数据库表的显示,最后,通过交叉编译,并移植到ARM Cortex-A8开发板上。该设计方案简单易操作,占用资源较少,适合嵌入式系统下的小型数据库系统开发。

参考文献

[1] 张治国,董西广.基于Qt平台的数据库编程[J].福建电脑,2011 (3):165-167.

[2] 孔翔鸣. Qt本地数据库开发[J]. 电脑知识与技术, 2017, 13(10):4-5.

[3] 梁隆恺, 韩改宁, 王晓妮. 嵌入式Qt下的数据库程序设计与开发[J]. 办公自动化, 2014(21):58-61.

[4] 蔡志明,陆川富.精通Qt4编程[M]. 第2版.北京:电子工业出版社,2011.

[5] 闵孝忠, 朱林立. QT环境下通用数据库组件技术的研究与设计[J]. 计算机应用与软件, 2015, 32(12):231-234.

[6] 毛成果.采煤机摇臂便携式数据采集及分析系统研究[D]. 徐州:中国矿业大学, 2014.

[7] 郭琳. 一种多功能教学辅助系统的软件设计[D]. 哈尔滨:黑龙江大学, 2018.

[8] 瞿帅,张晓丽,朱程浩,等.机载激光雷达森林资源调查系统的设计与试验[J].西北林学院学报, 2018, 33(4):175-182.

[9] 林晓斌, 林晨. 基于ARM9与QT的多功能智能车载系统研发[J].赤峰学院学报(自然科学版), 2018(3). 92-94.

(收稿日期:2019.09.05)

猜你喜欢
嵌入式
嵌入式LINUX操作系统的研究
嵌入式的特点及发展机遇
嵌入式组件技术的研究及应用
基于嵌入式系统的游戏程序设计
“嵌入式系统概论”课程设计
AItera推出Nios II系列软核处理器