背景:6月初,同班女同学跟我说她有一个朋友,想让我做一个小项目。于是加上这个"朋友",了解一些需求,看一看能不能做
1. 背景
咱们看一下需求
其实需求很简单,但是在此之前我并不知道什么是JavaFX。一个晚上之后,这小活我接了。因为还要白天还有课和考研要弄。基本上就晚上再弄。用了一周时间,基本上成型。现在我把这个项目展示出来。
首先这只是一个课程作业,并不是真实的业务项目。而且做这个东西需要考虑用户能不能理解所使用的技术,所以对于这个项目而言,并没有用主流框架,也没有做精美前端样式。只是简简单单去实现这些需求。 说到这,让我想起来,上半年和我导师接了政府的项目,全程只有我一个人去coding,其实实现项目大概用了一个月,但是前前后后各种问题,费事费神。那是一个单机的检验系统,主要是争对市里excel数据按照一定的规则引擎去检查数据,并对问题数据进行处理。等以后有精力,会考虑去分享这个项目。
2.项目思考
看完需求之后,就开始分析业务。三个不同的用例,不同的用例拥有不同的权限。我这里将这个项目进行拆分:
- 管理员模块
- 普通用户模块
- 游客模块
管理员可管理用户、管理留言、登录
普通用户可管理留言、登录
游客可查看留言、登录
留言管理应该是较为重要的业务,因此我画了一个简易流程图。如下:
再拆分为三个子模块之后,这个项目更加清晰,如果不是我不了解JavaFx和白天开发时间不够,都用不 了一个星期,两三天就可以开发完。
3.项目介绍
连接数据库我使用的半自动工具dbUtils,配置文件db.properties内容如下
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/LeaveMessageSystem?useSSL=false&useUnicode=true&characterEncoding=utf-8
username=root
password=SF1210991856
开发页面我使用Scene Builder工具,这里遇到一个坑,可查看之前发布的一篇文章
都说Scene Builder好,我觉得除了效率高点,也没其他的,我也没有用它把界面做的多好看。
3.1 项目结构
beans是实体类包,我这里其实设计得不大好,有冗余。其中需要关注是Session类,这里用来保存会话实体,不过我只在为普通客户去保存会话了,实际上是偷懒了。
controller是控制器包,其实就是处理逻辑。
dao是持久层操作数据库类包,我这里这么设计也不太好,应该把它设计为实现与接口分离,不过重要的是后期不会再扩展,这也就是课程作业与实际业务的区别。
tools是一些工具包。
view是视图文件包。
代码已经放入GitHub,需要的同学自取。别忘了给一个star!!!