摘 要
本论文主要叙述了如何使用python语言、Hadoop框架开发一个盘算机课程知识库设计平台,本体系将严酷按照软件开发流程,进行各个阶段的工作,面向对象编程思想进行项目开发。在引言中,作者将叙述该体系的当前配景以及体系开发的目的,后续章节将严酷按照软件开发流程,对体系进行各个阶段分析设计。
盘算机课程知识库设计平台的主要使用者分为管理员和用户,主要实现:车流量管理、用户管理、角色管理、数据生成等功能。
本体系的使用可以方便用户查询车流量信息,方便管理员管理车流量信息,数据生成、用户管理等数据,进步工作服从。
关键词:大数据的车流量体系,Python,Hadoop,Mysql
A Traffic Flow System Based on Python Big Data
ABSTRACT
This paper mainly discusses how to develop a computer course knowledge base design platform using Python language and Hadoop framework. This system will strictly follow the software development process, carry out various stages of work, and use object-oriented programming ideas for project development. In the introduction, the author will discuss the current background of the system and the purpose of system development. Subsequent chapters will strictly follow the software development process to analyze and design the system at each stage.
The main users of the computer course knowledge base design platform are administrators and users, mainly achieving functions such as traffic management, user management, role management, and data generation.
The use of this system can facilitate users to query traffic flow information, facilitate administrators to manage traffic flow information, generate data, manage user data, and improve work efficiency.
Keywords: big data traffic flow system, Python, Hadoop, MySQL
目 录
摘 要
ABSTRACT
第1章 绪论
1.1配景及意义
1.2 开发现状
1.3 研究的内容
第2章 相干技术
2.1 开发技术
2.2 Python简介
2.3 springboot框架介绍
2.4 MVVM模式
2.5 B/S结构
2.6 MySQL数据库
2.7 Hadoop后端框架
第3章 体系分析
3.1 需求分析
3.2 体系可行性分析
3.2.1技术可行性
3.2.2经济可行性
3.2.3操作可行性
3.3 项目设计目标与原则
3.4体系流程分析
3.4.1操作流程
3.4.2添加信息流程
3.4.3删除信息流程
第4章 体系设计
4.1 体系体系结构
4.2体系结构设计
4.3开发流程设计
4.4 数据库设计原则
4.5 数据表
第5章 体系实现
5.1根本任务
5.2登录模块的实现
第6章 体系测试
6.1体系测试的目的
6.2体系测试方法
6.3功能测试
结 论
致 谢
参考文献
第1章 绪论
1.1研究配景
随着经济的发展和人们生存水平的不断提升,交通门路上的机动车越来越多,该现象导致城市的交通门路的压力也在不断增加,拥堵便成了人们出行中十分常见而又困扰的一件事,如何对交通门路的车流量进行预测成为当下的热门研究问题,通过对车流量精确的进行预测可以或许提前知晓交通门路的拥堵状况,提前采取措施克制因拥堵现象造成变乱发生的情况。
现有技术中,获取目标车流量的方法为:通过提取待预测路段内汗青车辆通行数据,并按车道汇总样本流量数据,分别盘算相邻两天或两天以上的不同时间段内的各车道流量变化浮动值,统计汗青车流量数据,将获得的车道实时流量数据与对应浮动平均值相乘,终极得出车流量预测值。
1.2 研究的内容
如今许多人仍将传统的单机设备作为信息管理的主要工具,而网络技术的应用只是起到辅助作用。在对网络工具的认知程度上,较为传统的office软件等仍是人们使用的主要工具,而面向各个专门行业的管理体系的信息管理软件仍旧缺乏群众底子。本选题则旨在通过标签分类管理等方式,实现首页,车流量管理、用户管理、角色管理、数据生成等功能。
第2章 相干技术
2.1 开发技术
本体系前端框架接纳了比较流行的渐进式JavaScript框架Vue.js。使用Vue-Router和Vuex实现动态路由和全局状态管理,Ajax实现前后端通讯,Element UI组件库使页面快速成型。后端部门:接纳Python技术,选取Hadoop作为开发框架进行设计开发。
2.2 Python简介
Python 是一个高层次的脚本语言结合相识释性、编译性、互动性和面向对象的。Python 的设计,相比其他语言常常使用英文关键字和其他语言的一些标点符号,它具有比其他语言更有特色语法结构,具有很强的可读性。
表明型语言:类似于Python和Perl语言,这意味着开发过程中没有了编译这个环节。交互式语言:可以在一个 Python 提示符 >>> 后直接实行代码。面向对象语言:Python支持面向对象的风格或代码封装在对象的编程技术。
2.3 springboot框架介绍
Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。尽管Spring框架自身对编程模型没有限制,但其在Java应用中的频仍使用让它备受青睐,以至于厥后让它作为EJB(EnterpriseJavaBeans)模型的增补,甚至是替补。Spring框架为开发提供了一系列的办理方案,比如利用控制反转的核心特性,并通过依靠注入实现控制反转来实现管理对象生命周期容器化,利用面向切面编程进行声明式的事务管理,整合多种长期化技术管理数据访问,提供大量优秀的Web框架方便开发等等。Spring框架具有控制反转(IOC)特性,IOC旨在方便项目维护和测试,它提供了一种通过Java的反射机制对Java对象进行统一的设置和管理的方法。Spring框架利用容器管理对象的生命周期,容器可以通过扫描XML文件或类上特定Java注解来设置对象,开发者可以通过依靠查找或依靠注入来获得对象。Spring框架具有面向切面编程(AOP)框架,SpringAOP框架基于代理模式,同时运行时可设置;AOP框架主要针对模块之间的交叉关注点进行模块化。Spring框架的AOP框架仅提供根本的AOP特性,虽无法与AspectJ框架相比,但通过与AspectJ的集成,也可以满意根本需求。Spring框架下的事务管理、长途访问等功能均可以通过使用SpringAOP技术实现。Spring的事务管理框架为Java平台带来了一种抽象机制,使当地和全局事务以及嵌套事务可以或许与保存点一起工作,并且险些可以在Java平台的任何环境中工作。Spring集成多种事务模板,体系可以通过事务模板、XML或Java注解进行事务设置,并且事务框架集成了消息传递和缓存等功能。Spring的数据访问框架办理了开发职员在应用步伐中使用数据库时遇到的常见困难。它不但对Java:JDBC、iBATS/MyBATIs、Hibernate、Java数据对象(JDO)、ApacheOJB和ApacheCayne等所有流行的数据访问框架中提供支持,同时还可以与Spring的事务管理一起使用,为数据访问提供了灵活的抽象。Spring框架最初是没有打算构建一个本身的WebMVC框架,其开发职员在开发过程中认为现有的StrutsWeb框架的出现层和哀求处理层之间以及哀求处理层和模型之间的分离不够,于是创建了SpringMVC。
2.4 MVVM模式
MVVM是Model-View-ViewModel的简写。它本质上就是MVC 的改进版。MVVM 就是将此中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开。固然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中由于需要展示内容而涉及的业务逻辑。微软的WPF带来了新的技术体验,如Silverlight、音频、视频、3D、动画……,这导致了软件UI层更加细节化、可定制化。同时,在技术层面,WPF也带来了 诸如Binding、Dependency Property、Routed Events、Command、DataTemplate、ControlTemplate等新特性。MVVM(Model-View-ViewModel)框架的由来便是MVP(Model-View-Presenter)模式与WPF结合的应用方式时发展演变过来的一种新型架构框架。它立足于原有MVP框架并且把WPF的新特性糅合进去,以应对客户日益复杂的需求变化。
2.5 B/S结构
B/S(Browser/Server)比前身架构更为省事的架构。它借助Web server完成数据的传递交流。只需要下载浏览器作为客户端,那么工作就到达“瘦身”效果, 不需要考虑不绝装软件的问题。
2.6 MySQL数据库
Mysql的语言好坏结构化的,用户可以在数据上进行工作。MySQL由于其速度、可靠性和适应性而备受关注。大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。并且由于Mysql的语言和结构比较简单,但是功能和存储信息量很强盛,所以得到了普遍的应用。
Mysql数据库在编程过程中的作用是很广泛的,为用户进行数据查询带来了方便。Mysql数据库的应用因其灵活性强,功能强盛,所以在实现某功能时只需要一小段代码,而不像其他步伐需要编写大段代码。总体来说,Mysql数据库的语言相对要简洁很多。
数据流程分析主要就是数据存储的蕴藏室,它是在盘算机上进行的,而不是实际中的蕴藏室。数据的存放是按固定格式,而不是无序的,其界说就是:恒久有固定格式,可以共享的存储在盘算机存储器上。数据库管理主要是数据存储、修改和增加以及数据表的建立。为了包管体系数据的正常运行,一些有能力的处理者可以进行管理而不需要专业的人来处理。数据表的建立,可以对数据表中的数据进行调整,数据的重新组合及重新构造,包管数据的安全性。介于数据库的功能强盛等特点,本体系的开发主要应用了Mysql进行对数据的管理。
2.7 Hadoop后端框架
Hadoop是一个轻量级的可定制框架,使用Python语言编写,较其他同范例框架更为灵活、轻便、安全且容易上手。它可以很好地结合MVC模式进行开发,开发职员分工合作,小型团队在短时间内就可以完成功能丰富的中小型网站或Web服务的实现。另外,Hadoop另有很强的定制性,用户可以根据本身的需求来添加相应的功能,在保持核心功能简单的同时实现功能的丰富与扩展,其强盛的插件库可以让用户实现个性化的网站定制,开发出功能强盛的网站。
第3章 体系分析
3.1 需求分析
大数据的车流量体系主要是借助信息管理体系,方便用户相识共享车流量信息等。更好存储所有数据信息及快速方便的检索功能。对体系的各个模块是通过许多本日的发达体系做出公道的分析来确定考虑用户的可操作性,遵循开发的体系优化的原则,经过全面的调查和研究。
体系所要实现的功能分析,对于如今网络方便的管理,体系要实现用户可以直接在平台上进行查看所有数据信息,根据需求可以进行在线添加,删除或修改信息,这样既能节省时间,不消再像传统的方式耽误时间,真的很难去满意用户的各种需求。所以大数据的车流量体系的开发不但仅是能满意用户的需求,还能进步管理员的工作服从,减少原有不须要的工作量。
3.2 体系可行性分析
3.2.1技术可行性
该体系在Windows操作体系中进行开发,并且如今PC机的性能已经可以胜任普通网站的web服务器。体系开发所使用的技术也都是自身所具有的,也是当下广泛应用的技术之一。
体系的开发环境和设置都是可以自行安装的,体系使用Hadoop框架,使用比较成熟的Mysql数据库进行对体系前台及背景的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得网站运行更具有稳固性和安全性,从而完成实现网站的开发。
(1)硬件可行性分析
大数据的车流量体系及信息分析的设计对于所使用的盘算机没有什么硬性的要求,盘算机只要可以正常的使用进行代码的编写及页面设计就可行,主要是对于服务器有些要求,对于平台搭建完成要上传的服务器是有肯定的要求的,服务器必须选择安全性比较高的,然后就是在打开网站必须顺畅,不能停顿太长时间;性价比高;安全性高。
(2)软件可行性分析
开发整个体系使用的是云盘算,流量的可扩展性和基于流量的智能调整云盘算的优点就是流量的可扩展性和基于流量的智能调整,保障体系的安全及数据信息的实时备份。
因此,我们从两个方面进行了可行性研究,可以看出体系的开发没有问题。
3.2.2经济可行性
在大数据的车流量体系开发之前所做的市场调研及相干的管理体系,都是没有任何费用的,都是通过开发者本身的努力,所有的工作的都是本身亲力亲为,在遇到本身比较难以办理的问题,大多是通过同砚和指导老师的资助进行相干信息的办理,所以对于大数据的车流量体系的开发在经济上是完全可行的,没有任何费用支出的。
3.2.3操作可行性
可操作性主要是对大数据的车流量体系设计完成后,用户的使用体验度,以及管理员可以通过体系随时管理相干的数据信息,并且对于管理员和用户两个用户角色,都可以简单明了的进入到本身的体系界面,通过界面导航菜单可以简单明了地操作功能模块,方便用户信息的操作需求和管理员管理数据信息,对于体系的操作,不需要专业职员都可以直接进行功能模块的操作管理,所以在体系的可操作性是完全可以的。本体系的操作使用的也是界面窗口进行登录,所以操作职员只要会简单的电脑操作就完全可以的。
3.3 项目设计目标与原则
1、关于大数据的车流量体系的根本要求
(1)功能要求:首页,车流量管理、用户管理、角色管理、数据生成、日总车流分析、分时段路品车流分析、车流总分析等功能模块。
(2)性能:在不同操作体系上均能无不对实如今不同范例的用户登入相应界面后能不出不对、方便地进行预期操作。
(3)安全与保密要求:用户都必须通过身份验证才气进入体系,并且用户的权限也需要根据用户的范例进行限定。
(4)环境要求:支持多种平台,可在Windows系列、Vista体系等多种操作体系下使用。
2、开发目标
大数据的车流量体系的主要开发目标如下:
(1)实现管理体系信息关系的体系化、规范化和主动化;
(2)减少维护职员的工作量以及实现用户对信息的控制和管理。
(3)方便查询信息及管理信息等;
(4)通过网络操作,改善处理问题的服从,进步操作职员利用率;
(5)考虑到用户多样性特点,要求界面简单,操作简便。
3、设计原则
本体系接纳Python技术,Mysql数据库开发,充分包管了体系稳固性、完备性。
大数据的车流量体系的设计与实现的设计思想如下:
- 操作简单方便、体系界面安全良、简单明了的页面布局、方便查询相干信息。
2、即时可见:对大数据的车流量体系信息的处理将可以实时查询到,从而实现“即时发布、即时收效”的体系功能。
3、功能的完善性:拥有首页,车流量管理、用户管理、角色管理、数据生成、日总车流分析、分时段路品车流分析、车流总分析等模块的修改维护操作。
3.4体系流程分析
3.4.1操作流程
体系登录流程图,如图所示:
图3-1登录流程图
3.4.2添加信息流程
添加信息流程图,如图所示:
图3-2添加信息流程图
3.4.3删除信息流程
删除信息流程图,如图所示:
图3-3删除信息流程图
第4章 体系设计
4.1 体系体系结构
本体系选择B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式。适合在互联网上进行操作,只要用户能连网,任何时间、任何地点都可以进行体系的操作使用。体系工作原理图如图4-1所示:
图4-1 体系工作原理图
4.2体系结构设计
整个体系是由多个功能模块组合而成的,要将所有的功能模块都逐一列举出来,然后进行逐个的功能设计,使得每一个模块都有相对应的功能设计,然后进行体系整体的设计。
本体系结构图如图4-2所示。
图4-2 体系功能结构图
4.3开发流程设计
体系流程的分析是通过调查体系所涉及问题的辨认、可行性、可操作性、体系分析处理能力等详细环节来调节、整理体系的设计方案以确保体系能到达抱负的状态。这些操作都要从注册、登录处着眼进行一系列的流程测试包管数据库的完备,从而把控体系所涉及信息管理的安全、包管信息输入、输出正常转换。然后,通过实际操作完成流程图的绘制工作。
大数据的车流量体系的开发对管理模块和体系使用的数据库进行分析,编写代码,体系测试,如图4-4所示。
图4-4开发体系流程图
4.4 数据库设计原则
学习编程,我们都知道数据库设计是基于需要设计的体系功能,我们需要建立一个数据库关系模型,用于存储数据信息,这样当我们在步伐中时,就没有须要为步伐页面添加数据,从而进步体系的服从。数据库存储了很多信息,可以说是信息管理体系的核心和底子,数据库还提供了添加、删除、修改和查抄,使体系可以或许快速找到本身想要的信息,而不是在步伐代码中找到。数据库中信息表的每个部门根据肯定的关系精确地组合,分列和组合成数据表。
通过大数据的车流量体系的功能进行规划分成几个实体信息,实体信息将通过ER图进行说明,本体系的主要实体图如下:
用户信息属性图如图4-5所示。
图4-5 管理员信息实体属性图
图4-6 用户信息实体属性图
体系的E-R图如下图所示:
图4-6体系E-R图
4.5 数据表
将数据库概念设计的E-R图转换为关系数据库。在关系数据库中,数据关系由数据表组成,但是表的结构表如今表的字段上。
gen_table
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| table_id
| bigint
| 0
| 是
| 是
| 编号
| table_name
| varchar
| 200
| 否
| 否
| 表名称
| table_comment
| varchar
| 500
| 否
| 否
| 表描述
| sub_table_name
| varchar
| 64
| 否
| 否
| 关联子表的表名
| sub_table_fk_name
| varchar
| 64
| 否
| 否
| 子表关联的外键名
| class_name
| varchar
| 100
| 否
| 否
| 实体类名称
| tpl_category
| varchar
| 200
| 否
| 否
| 使用的模板
| package_name
| varchar
| 100
| 否
| 否
| 生成包路径
| module_name
| varchar
| 30
| 否
| 否
| 生成模块名
| business_name
| varchar
| 30
| 否
| 否
| 生成业务名
| function_name
| varchar
| 50
| 否
| 否
| 生成功能名
| function_author
| varchar
| 50
| 否
| 否
| 生成功能作者
| gen_type
| char
| 1
| 否
| 否
| 生成代码方式
| gen_path
| varchar
| 200
| 否
| 否
| 生成路径
| options
| varchar
| 1000
| 否
| 否
| 别的生成选项
| create_by
| varchar
| 64
| 否
| 否
| 创建者
| create_time
| datetime
| 0
| 否
| 否
| 创建时间
| update_by
| varchar
| 64
| 否
| 否
| 更新者
| update_time
| datetime
| 0
| 否
| 否
| 更新时间
| remark
| varchar
| 500
| 否
| 否
| 备注
|
|
|
|
|
|
| gen_table_column
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| column_id
| bigint
| 0
| 是
| 是
| 编号
| table_id
| varchar
| 64
| 否
| 否
| 归属表编号
| column_name
| varchar
| 200
| 否
| 否
| 列名称
| column_comment
| varchar
| 500
| 否
| 否
| 列描述
| column_type
| varchar
| 100
| 否
| 否
| 列范例
| java_type
| varchar
| 500
| 否
| 否
| JAVA范例
| java_field
| varchar
| 200
| 否
| 否
| JAVA字段名
| is_pk
| char
| 1
| 否
| 否
| 是否主键
| is_increment
| char
| 1
| 否
| 否
| 是否自增
| is_required
| char
| 1
| 否
| 否
| 是否必填
| is_insert
| char
| 1
| 否
| 否
| 是否为插入字段
| is_edit
| char
| 1
| 否
| 否
| 是否编辑字段
| is_list
| char
| 1
| 否
| 否
| 是否列表字段
| is_query
| char
| 1
| 否
| 否
| 是否查询字段
| query_type
| varchar
| 200
| 否
| 否
| 查询方式
| html_type
| varchar
| 200
| 否
| 否
| 表现范例
| dict_type
| varchar
| 200
| 否
| 否
| 字范例例
| sort
| int
| 0
| 否
| 否
| 排序
| create_by
| varchar
| 64
| 否
| 否
| 创建者
| create_time
| datetime
| 0
| 否
| 否
| 创建时间
| update_by
| varchar
| 64
| 否
| 否
| 更新者
| update_time
| datetime
| 0
| 否
| 否
| 更新时间
|
|
|
|
|
|
| qrtz_blob_triggers
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| sched_name
| varchar
| 120
| 是
| 是
| 调治名称
| trigger_name
| varchar
| 200
| 是
| 是
| qrtz_triggers表trigger_name的外键
| trigger_group
| varchar
| 200
| 是
| 是
| qrtz_triggers表trigger_group的外键
| blob_data
| blob
| 0
| 否
| 否
| 存放长期化Trigger对象
|
|
|
|
|
|
| qrtz_calendars
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| sched_name
| varchar
| 120
| 是
| 是
| 调治名称
| calendar_name
| varchar
| 200
| 是
| 是
| 日历名称
| calendar
| blob
| 0
| 是
| 否
| 存放长期化calendar对象
|
|
|
|
|
|
| qrtz_cron_triggers
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| sched_name
| varchar
| 120
| 是
| 是
| 调治名称
| trigger_name
| varchar
| 200
| 是
| 是
| qrtz_triggers表trigger_name的外键
| trigger_group
| varchar
| 200
| 是
| 是
| qrtz_triggers表trigger_group的外键
| cron_expression
| varchar
| 200
| 是
| 否
| cron表达式
| time_zone_id
| varchar
| 80
| 否
| 否
| 时区
|
|
|
|
|
|
| qrtz_fired_triggers
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| sched_name
| varchar
| 120
| 是
| 是
| 调治名称
| entry_id
| varchar
| 95
| 是
| 是
| 调治器实例id
| trigger_name
| varchar
| 200
| 是
| 否
| qrtz_triggers表trigger_name的外键
| trigger_group
| varchar
| 200
| 是
| 否
| qrtz_triggers表trigger_group的外键
| instance_name
| varchar
| 200
| 是
| 否
| 调治器实例名
| fired_time
| bigint
| 0
| 是
| 否
| 触发的时间
| sched_time
| bigint
| 0
| 是
| 否
| 定时器订定的时间
| priority
| int
| 0
| 是
| 否
| 优先级
| state
| varchar
| 16
| 是
| 否
| 状态
| job_name
| varchar
| 200
| 否
| 否
| 任务名称
| job_group
| varchar
| 200
| 否
| 否
| 任务组名
| is_nonconcurrent
| varchar
| 1
| 否
| 否
| 是否并发
| requests_recovery
| varchar
| 1
| 否
| 否
| 是否接受恢复实行
|
|
|
|
|
|
| qrtz_job_details
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| sched_name
| varchar
| 120
| 是
| 是
| 调治名称
| job_name
| varchar
| 200
| 是
| 是
| 任务名称
| job_group
| varchar
| 200
| 是
| 是
| 任务组名
| description
| varchar
| 250
| 否
| 否
| 相干介绍
| job_class_name
| varchar
| 250
| 是
| 否
| 实行任务类名称
| is_durable
| varchar
| 1
| 是
| 否
| 是否长期化
| is_nonconcurrent
| varchar
| 1
| 是
| 否
| 是否并发
| is_update_data
| varchar
| 1
| 是
| 否
| 是否更新数据
| requests_recovery
| varchar
| 1
| 是
| 否
| 是否接受恢复实行
| job_data
| blob
| 0
| 否
| 否
| 存放长期化job对象
|
|
|
|
|
|
|
|
|
|
|
|
| qrtz_scheduler_state
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| sched_name
| varchar
| 120
| 是
| 是
| 调治名称
| instance_name
| varchar
| 200
| 是
| 是
| 实例名称
| last_checkin_time
| bigint
| 0
| 是
| 否
| 上次查抄时间
| checkin_interval
| bigint
| 0
| 是
| 否
| 查抄间隔时间
|
|
|
|
|
|
| qrtz_simple_triggers
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| sched_name
| varchar
| 120
| 是
| 是
| 调治名称
| trigger_name
| varchar
| 200
| 是
| 是
| qrtz_triggers表trigger_name的外键
| trigger_group
| varchar
| 200
| 是
| 是
| qrtz_triggers表trigger_group的外键
| repeat_count
| bigint
| 0
| 是
| 否
| 重复的次数统计
| repeat_interval
| bigint
| 0
| 是
| 否
| 重复的间隔时间
| times_triggered
| bigint
| 0
| 是
| 否
| 已经触发的次数
|
|
|
|
|
|
| qrtz_simprop_triggers
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| sched_name
| varchar
| 120
| 是
| 是
| 调治名称
| trigger_name
| varchar
| 200
| 是
| 是
| qrtz_triggers表trigger_name的外键
| trigger_group
| varchar
| 200
| 是
| 是
| qrtz_triggers表trigger_group的外键
| str_prop_1
| varchar
| 512
| 否
| 否
| String范例的trigger的第一个参数
| str_prop_2
| varchar
| 512
| 否
| 否
| String范例的trigger的第二个参数
| str_prop_3
| varchar
| 512
| 否
| 否
| String范例的trigger的第三个参数
| int_prop_1
| int
| 0
| 否
| 否
| int范例的trigger的第一个参数
| int_prop_2
| int
| 0
| 否
| 否
| int范例的trigger的第二个参数
| long_prop_1
| bigint
| 0
| 否
| 否
| long范例的trigger的第一个参数
| long_prop_2
| bigint
| 0
| 否
| 否
| long范例的trigger的第二个参数
| dec_prop_1
| decimal
| 13
| 否
| 否
| decimal范例的trigger的第一个参数
| dec_prop_2
| decimal
| 13
| 否
| 否
| decimal范例的trigger的第二个参数
| bool_prop_1
| varchar
| 1
| 否
| 否
| Boolean范例的trigger的第一个参数
| bool_prop_2
| varchar
| 1
| 否
| 否
| Boolean范例的trigger的第二个参数
|
|
|
|
|
|
| qrtz_triggers
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| sched_name
| varchar
| 120
| 是
| 是
| 调治名称
| trigger_name
| varchar
| 200
| 是
| 是
| 触发器的名字
| trigger_group
| varchar
| 200
| 是
| 是
| 触发器所属组的名字
| job_name
| varchar
| 200
| 是
| 否
| qrtz_job_details表job_name的外键
| job_group
| varchar
| 200
| 是
| 否
| qrtz_job_details表job_group的外键
| description
| varchar
| 250
| 否
| 否
| 相干介绍
| next_fire_time
| bigint
| 0
| 否
| 否
| 上一次触发时间
| prev_fire_time
| bigint
| 0
| 否
| 否
| 下一次触发时间
| priority
| int
| 0
| 否
| 否
| 优先级
| trigger_state
| varchar
| 16
| 是
| 否
| 触发器状态
| trigger_type
| varchar
| 8
| 是
| 否
| 触发器的范例
| start_time
| bigint
| 0
| 是
| 否
| 开始时间
| end_time
| bigint
| 0
| 否
| 否
| 竣事时间
| calendar_name
| varchar
| 200
| 否
| 否
| 日程表名称
| misfire_instr
| smallint
| 0
| 否
| 否
| 赔偿实行的计谋
| job_data
| blob
| 0
| 否
| 否
| 存放长期化job对象
|
|
|
|
|
|
| sys_city
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| city_id
| bigint
| 0
| 是
| 是
| 城市id
| city_name
| varchar
| 20
| 否
| 否
| 城市名字
| city_number
| varchar
| 13
| 否
| 否
| 城市代码
| province_id
| bigint
| 0
| 否
| 否
| 省份ID
| del_flag
| int
| 0
| 否
| 否
| 是否删除
|
|
|
|
|
|
| sys_config
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| config_id
| int
| 0
| 是
| 是
| 参数主键
| config_name
| varchar
| 100
| 否
| 否
| 参数名称
| config_key
| varchar
| 100
| 否
| 否
| 参数键名
| config_value
| varchar
| 500
| 否
| 否
| 参数键值
| config_type
| char
| 1
| 否
| 否
| 体系内置
| create_by
| varchar
| 64
| 否
| 否
| 创建者
| create_time
| datetime
| 0
| 否
| 否
| 创建时间
| update_by
| varchar
| 64
| 否
| 否
| 更新者
| update_time
| datetime
| 0
| 否
| 否
| 更新时间
| remark
| varchar
| 500
| 否
| 否
| 备注
|
|
|
|
|
|
| sys_dept
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| dept_id
| bigint
| 0
| 是
| 是
| 部门id
| parent_id
| bigint
| 0
| 否
| 否
| 父部门id
| ancestors
| varchar
| 50
| 否
| 否
| 祖级列表
| dept_name
| varchar
| 30
| 否
| 否
| 部门名称
| order_num
| int
| 0
| 否
| 否
| 表现顺序
| leader
| varchar
| 20
| 否
| 否
| 负责人
| phone
| varchar
| 11
| 否
| 否
| 联系电话
| email
| varchar
| 50
| 否
| 否
| 邮箱
| status
| char
| 1
| 否
| 否
| 部门状态
| del_flag
| char
| 1
| 否
| 否
| 删除标志
| create_by
| varchar
| 64
| 否
| 否
| 创建者
| create_time
| datetime
| 0
| 否
| 否
| 创建时间
| update_by
| varchar
| 64
| 否
| 否
| 更新者
| update_time
| datetime
| 0
| 否
| 否
| 更新时间
|
|
|
|
|
|
| sys_dict_data
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| dict_code
| bigint
| 0
| 是
| 是
| 字典编码
| dict_sort
| int
| 0
| 否
| 否
| 字典排序
| dict_label
| varchar
| 100
| 否
| 否
| 字典标签
| dict_value
| varchar
| 100
| 否
| 否
| 字典键值
| dict_type
| varchar
| 100
| 否
| 否
| 字范例例
| css_class
| varchar
| 100
| 否
| 否
| 样式属性
| list_class
| varchar
| 100
| 否
| 否
| 表格回显样式
| is_default
| char
| 1
| 否
| 否
| 是否默认
| status
| char
| 1
| 否
| 否
| 状态
| create_by
| varchar
| 64
| 否
| 否
| 创建者
| create_time
| datetime
| 0
| 否
| 否
| 创建时间
| update_by
| varchar
| 64
| 否
| 否
| 更新者
| update_time
| datetime
| 0
| 否
| 否
| 更新时间
| remark
| varchar
| 500
| 否
| 否
| 备注
|
|
|
|
|
|
| sys_dict_type
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| dict_id
| bigint
| 0
| 是
| 是
| 字典主键
| dict_name
| varchar
| 100
| 否
| 否
| 字典名称
| dict_type
| varchar
| 100
| 否
| 否
| 字范例例
| status
| char
| 1
| 否
| 否
| 状态
| create_by
| varchar
| 64
| 否
| 否
| 创建者
| create_time
| datetime
| 0
| 否
| 否
| 创建时间
| update_by
| varchar
| 64
| 否
| 否
| 更新者
| update_time
| datetime
| 0
| 否
| 否
| 更新时间
| remark
| varchar
| 500
| 否
| 否
| 备注
|
|
|
|
|
|
| sys_logininfor
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| info_id
| bigint
| 0
| 是
| 是
| 访问ID
| user_name
| varchar
| 50
| 否
| 否
| 用户账号
| ipaddr
| varchar
| 128
| 否
| 否
| 登录IP地点
| login_location
| varchar
| 255
| 否
| 否
| 登录地点
| browser
| varchar
| 50
| 否
| 否
| 浏览器范例
| os
| varchar
| 50
| 否
| 否
| 操作体系
| status
| char
| 1
| 否
| 否
| 登录状态
| msg
| varchar
| 255
| 否
| 否
| 提示消息
| login_time
| datetime
| 0
| 否
| 否
| 访问时间
|
|
|
|
|
|
| sys_oper_log
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| oper_id
| bigint
| 0
| 是
| 是
| 日志主键
| title
| varchar
| 50
| 否
| 否
| 模块标题
| business_type
| int
| 0
| 否
| 否
| 业务范例
| method
| varchar
| 100
| 否
| 否
| 方法名称
| request_method
| varchar
| 10
| 否
| 否
| 哀求方式
| operator_type
| int
| 0
| 否
| 否
| 操作类别
| oper_name
| varchar
| 50
| 否
| 否
| 操作职员
| dept_name
| varchar
| 50
| 否
| 否
| 部门名称
| oper_url
| varchar
| 255
| 否
| 否
| 哀求URL
| oper_ip
| varchar
| 128
| 否
| 否
| 主机地点
| oper_location
| varchar
| 255
| 否
| 否
| 操作地点
| oper_param
| varchar
| 2000
| 否
| 否
| 哀求参数
| json_result
| varchar
| 2000
| 否
| 否
| 返回参数
| status
| int
| 0
| 否
| 否
| 操作状态
| error_msg
| varchar
| 2000
| 否
| 否
| 错误消息
| oper_time
| datetime
| 0
| 否
| 否
| 操作时间
|
|
|
|
|
|
| sys_street_attch
|
|
|
|
|
| 字段名称
| 范例
| 长度
| 不是null
| 主键
| 字段说明
| id
| bigint
| 0
| 是
| 是
| 主键ID
| province_name
| varchar
| 10
| 否
| 否
| 省份名称
| city_number
| bigint
| 0
| 否
| 否
| 城市代码
| city_name
| varchar
| 15
| 否
| 否
| 城市名称
| district_number
| bigint
| 0
| 否
| 否
| 区/县代码
| district_name
| varchar
| 20
| 否
| 否
| 区/县名称
| street_number
| bigint
| 0
| 否
| 否
| 街道代码
| street_name
| varchar
| 50
| 否
| 否
| 街道名称
|
第5章 体系实现
5.1根本任务
本章节详细介绍了体系各大功能模块的实现过程和实现方法,对每个功能进行实现,设计详细的根本目标是确定应该详细实现所要求的体系,每个模块都对应着相应的界面和表现的配图。主要从主页面的实现、登录模块的实现、管理员模块,普通用户模块的实现等方面来描述。
体系出现出一种简洁大方的背景:界面简约、鳞次栉比,用户能轻车熟路的使用。出于对体系使用群体广泛的顾虑,应有良好性能的背景。
5.2登录模块的实现
体系的登录窗口是用户的入口,用户只有在登录成功后才可以进入访问。通过在登录提交表单,背景处理判定是否为合法用户,进行页面跳转,进入体系中去。
登录合法性判定过程:用户输入账号和暗码后,体系首先确定输入输入数据合法性,调用src下的mainctrl类的dopost方法来验证。
用户登录模块的IPO如下所示:
输入:用户名和暗码。
处理:
1)检测用户输入的账号、暗码是否精确及在数据库已对应存在。
2)从数据库中提取记录,并储存在当地的session中(timeout默认=30min)。
3)根据用户名,将其表现在体系首页上。
输出:是否成功的信息。
登录流程图如下所示。
图5-1登录流程图
体系登录界面如下所示。
图5-2体系登录界面
登录代码如下:
/**
* 登录
* @param data
* @param httpServletRequest
* @return
*/
@PostMapping("login")
public Map<String, Object> login(@RequestBody Map<String, String> data, HttpServletRequest httpServletRequest) {
log.info("[实行登录接口]");
String username = data.get("username");
String email = data.get("email");
String phone = data.get("phone");
String password = data.get("password");
List resultList = null;
Map<String, String> map = new HashMap<>();
if(username != null && "".equals(username) == false){
map.put("username", username);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(email != null && "".equals(email) == false){
map.put("email", email);
resultList = service.select(map, new HashMap<>()).getResultList();
}
else if(phone != null && "".equals(phone) == false){
map.put("phone", phone);
resultList = service.select(map, new HashMap<>()).getResultList();
}else{
return error(30000, "账号或暗码不能为空");
}
if (resultList == null || password == null) {
return error(30000, "账号或暗码不能为空");
}
//判定是否有这个用户
if (resultList.size()<=0){
return error(30000,"用户不存在");
}
User byUsername = (User) resultList.get(0);
Map<String, String> groupMap = new HashMap<>();
groupMap.put("name",byUsername.getUserGroup());
List groupList = userGroupService.select(groupMap, new HashMap<>()).getResultList();
if (groupList.size()<1){
return error(30000,"用户组不存在");
}
UserGroup userGroup = (UserGroup) groupList.get(0);
//查询用户审核状态
if (!StringUtils.isEmpty(userGroup.getSourceTable())){
String sql = "select examine_state from "+ userGroup.getSourceTable() +" WHERE user_id = " + byUsername.getUserId();
String res = String.valueOf(service.runCountSql(sql).getSingleResult());
if (res==null){
return error(30000,"用户不存在");
}
if (!res.equals("已通过")){
return error(30000,"该用户审核未通过");
}
}
//查询用户状态
if (byUsername.getState()!=1){
return error(30000,"用户非可用状态,不能登录");
}
String md5password = service.encryption(password);
if (byUsername.getPassword().equals(md5password)) {
// 存储Token到数据库
AccessToken accessToken = new AccessToken();
accessToken.setToken(UUID.randomUUID().toString().replaceAll("-", ""));
accessToken.setUser_id(byUsername.getUserId());
tokenService.save(accessToken);
// 返回用户信息
JSONObject user = JSONObject.parseObject(JSONObject.toJSONString(byUsername));
user.put("token", accessToken.getToken());
JSONObject ret = new JSONObject();
ret.put("obj",user);
return success(ret);
} else {
return error(30000, "账号或暗码不精确");
}
}
用户管理,在此界面图可查看用户编号、用户名称、用户昵称、手机号码等信息,还可在此页面临进行新增、修改、删除、导出或导入等操作,如下图所示:
图5-3用户管理界面图
车流量管理,在此界面图可查看车辆ID、车辆名称、车牌号码、所属城市、所属区县、所属街道、车速、路口时间等信息,还可在此页面临进行搜修改、删除或刷新等操作,如下图所示:
图5-4 车流量管理界面图
数据生成管理,在此界面图可输入省份名称、城市名称、区县名称、生成日期、数据量等信信息,按确认背景即可生成数据,如下图所示:
图5-5数据生成界面图
角色管理,在此界面图可查看角色编号、角色名称、权限字符、表现顺序、状态等信息,还可在此页面临进行新增,修改,删除或导出等操作,如下图所示:
图5-6角色管理界面图
第6章 体系测试
6.1体系测试的目的
步伐设计不能包管没有错误,这是一个开发过程,在错误或错误的过程中都是难以克制的。固然这是不可克制的,但我们不能使这些错误始终存在于体系中,错误大概会造成无法估量的结果,如体系崩溃,安全信息泄露,体系无法正常启动等,为了克制这些问题,我们需要测试步伐,再测试过程中发现问题,并改正它们,从而使体系更长时间稳固成熟。本章的作用是发现这些问题,并对其进行修改,固然耗时费力,但对于恒久使用而言好坏常重要和须要体系的开发。
软件在设计后必须进行测试,调试过程中使用的方法是软件测试方法。在开发新软件时,体系测试是查抄软件是否及格的关键步调,以及是否符合设计目标的参考。测试主要是查看软件中数据的精确性,精确的操作与否,以及操作的结果,另有哪些方面需要改进。
大数据的车流量体系的实现,对于体系中功能模块的实现及操作都必须通过测试进行来评判体系是否可以精确的实现。在大数据的车流量体系正式上传使用之前必须做的一步就是体系测试,对于测试发现的错误实时修改处理,包管体系精确无误的供给用户使用。
6.2体系测试方法
在对大数据的车流量体系进行测试的时候在找到问题的情况下必须在第一时间找到办理问题的办法,不要存在荣幸的心理,这样才气让大数据的车流量体系开发的质量可以过关,并且开发的周期会大大收缩,另有就是在测试时,不要出现重复性的错误,遇到一个错误问题,要将整个大数据的车流量体系开发所扳连的该问题都必须逐一办理,进步大数据的车流量体系平台的安全性、稳固性。
白盒测试与黑盒测试是测试中比较常用的两种方法。
①结构测试俗称白盒测试:这种测试是在对步伐的处理过程与结构都有详尽谅解的条件下,顺从步伐内部的逻辑而完成的体系测试,以确定体系中所有的通路都可以或许遵照设计要求正常工作,不出现任何偏差。
②功能测试又成黑盒测试:主要是针对步伐功能可以或许按照设计正常实现的一种检测,在步伐接口处进行,检测步伐手法数据是否正常,与外部信息的互换是否完备。
6.3功能测试
用户登录测试:
模块名称
| 测试用例
| 预期结果
| 实际结果
| 是否通过
| 登录模块
| 用户名:admin 暗码:123
| 弹出错误提示,提示暗码错误
| 弹出错误提示,提示暗码错误
| 通过
| 登录模块
| 用户名:123
暗码:admin
| 弹出错误提示,提示用户名错误
| 弹出错误提示,提示用户名错误
| 通过
| 登录模块
| 用户名:admin
暗码:admin
| 管理员登录成功
| 管理员登录成功
| 通过
| 修改暗码测试:
模块名称
| 测试用例
| 预期结果
| 实际结果
| 是否通过
| 修改暗码模块
| 原暗码:666
新暗码:123
确认暗码:123
| 弹出错误提示,提示原暗码错误
| 弹出错误提示,提示原暗码错误
| 通过
| 修改暗码模块
| 原暗码:admin 新暗码:123
确认暗码:333
| 弹出错误提示,提示确认暗码不一致
| 弹出错误提示,提示确认暗码不一致
| 通过
| 修改暗码模块
| 原暗码:admin 新暗码:123
确认暗码:123
| 暗码修改成功
| 暗码修改成功
| 通过
| 通过对功能的测试,大数据的车流量体系的根本功能都是可行的,不管是体系里面的功能,还是界面的设计都是可值得推广宣传的。
结 论
此时项目已经完成,即使实行的时间不是很长,但是这个过程中需要准备很长的一段时间去对体系设计开发所相干技术进行学习。在学习的过程中,我逐渐认识得到了我自身存在的一些不足。对于一些控制是须要的应用技能,可以或许理解,整个过程中仅仅是一个掌握了常用的性能和控制方法,我觉得挺容易的。从该体系中,体系的分析和设计的调查数据,并且已经履历了几个月,并努力几个月,该体系已经完成。很显然,该体系仍有很多不成熟的地方,在体系设计过程中有许多技术缺陷存在。在设计的过程中也涉及到了很多本身无法办理的问题,主要通过咨询老师办理这些问题,对于结业设计的圆满完成,需要感谢老师们的指导。体系的开发环境和设置都是可以自行安装的,体系使用Python语言,使用比较成熟的Mysql数据库进行对体系前台及背景的数据交互,根据技术语言对数据库,结合需求进行修改维护,可以使得体系运行更具有稳固性和安全性,从而完成实现体系的开发。
回顾结业设计的整个过程,既付出汗水也收获了很多。固然履历了各种各样的困难,本身的不断研究探索,体系的实现仍有不足之处。
在以后的学习及工作中,我仍旧继续学习盘算机方面的技术,让我在后期的平台开发中可以更好更快的实现需求功能。我信赖我可以让更多的好工作,做出更大的贡献。
致 谢
大数据的车流量体系的完成,如何实现的更好,此中付出的努力是很大的,这段时光将会终身难忘。
首先要感谢我的指导老师,谢谢您在设计和论文中给我的指导。在您的细心指导下我才气快速的掌握体系的相干功能,在您的大力资助下我才气将课本上的知识与本身的项目结合,真正的做到学以致用。感谢您常常捐躯本身的苏息时间,利用其丰富的讲授和项目履历对我进行指导。
感谢所有教过我的老师,为我倾注了大量的心血,正是你们的谆谆教导、严谨讲授才使我能顺遂的完成学业,再此向你们表示深深的感谢。
感谢我的同砚们,对我的大力支持及资助,正是你们不断的资助、鼓励,给我带来了极大的动力,终极体系可以顺遂的运行。我们在交流、评论的这段时间,将是我未来的财产,我要深深地感谢你们!
结业在即,在今后的工作和生存中,我会铭刻师长们的教导、同砚们的资助,继续不懈努力和追求,来报答所有支持和资助过我的人!
参考文献
[1]王驰,李博,袁甲坤,杨海涛,安学武.基于Python的风向数据可视化体系设计[J].气象水文海洋仪器,2023,40(01):90-93+97.DOI:10.19441/j.cnki.issn1006-009x.2023.01.010.
[2]Eslami Mohammad,Kazeminasab Saber,Sharma Vishal,Li Yangjiani,Fazli Mojtaba,Wang Mengyu,Zebardast Nazlee,Elze Tobias. PyVisualFields: A Python Package for Visual Field Analysis.[J]. Translational vision science & technology,2023,12(2).
[3]Bittremieux Wout,Levitsky Lev,Pilz Matteo,Sachsenberg Timo,Huber Florian,Wang Mingxun,Dorrestein Pieter C. Unified and Standardized Mass Spectrometry Data Processing in Python Using spectrum_utils.[J]. Journal of proteome research,2023.
[4]Zhang Xiangfeng,Wang Yanmei. Retraction Note: Research on intelligent medical big data system based on Hadoop and blockchain[J]. EURASIP Journal on Wireless Communications and Networking,2023,2023(1).
[5]刘晓莉,李满,熊超,秦黄,刘晓娟.基于Hadoop搭建高可用数据堆栈的研究和实现[J].当代信息科技,2023,7(01):99-101.DOI:10.19850/j.cnki.2096-4706.2023.01.027.
[6]张聪辉. Hadoop架构下的大数据安全存储技术研究[D].山东工商学院,2022.DOI:10.27903/d.cnki.gsdsg.2022.000074.
[7]罗小玲. 基于参数调优的Hadoop性能优化[D].内蒙古农业大学,2022.DOI:10.27229/d.cnki.gnmnu.2022.000032.
[8]孙爱月. Python表明器缺陷的实证研究[D].南京邮电大学,2021.DOI:10.27251/d.cnki.gnjdc.2021.000140.
[9]王海涛. 智慧交通车流量大数据采集与分析体系的设计与实现[D].扬州大学,2020.DOI:10.27441/d.cnki.gyzdu.2020.001028.
[10]郑凯琪. 基于Hadoop平台大数据分析处理的地下车库智能照明体系的研究应用[D].重庆理工大学,2020.DOI:10.27753/d.cnki.gcqgx.2020.000503.
[11]顾云敬. 车流量检测体系的设计与实现[D].南京大学,2019.DOI:10.27235/d.cnki.gnjiu.2019.001582.
[12]朱喆. 交通大数据时空因果关系分析及其在交通流预测中的应用[D].北京工业大学,2019.DOI:10.26935/d.cnki.gbjgu.2019.000112.
[13]丁明亮. 基于低功耗局域网的车流量检测体系设计[D].大连理工大学,2018.
[14]袁璐. 基于目标跟踪的车流量统计体系研究[D].兰州理工大学,2017.
[15]秦洁.基于大数据的高速公路车流量分析体系研究[J].数码世界,2017(04):82.
[16]林向铭. 基于高速公路车流量的管控体系设计与实现[D].福州大学,2017.
[17]李弘毅. 基于J2EE实现web车流量监控平台[D].哈尔滨工业大学,2016.
[18]王妍. 智能交通体系中车流量检测技术研究[D].东北大学,2012.
点赞+收藏+关注 →私信领取本源代码、数据库
关注博主下篇更精彩
一键三连!!!
一键三连!!!
一键三连!!!
感谢一键三连!!!
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |