Skip to content

Latest commit

 

History

History
108 lines (60 loc) · 2.61 KB

DesignDoc.md

File metadata and controls

108 lines (60 loc) · 2.61 KB

部分设计文档

初始化数据

在程序一开始的时候需要初始化一些数据,学生的基本信息,可以设计个工具类,进行单例的初始化。

初始化数据的格式:sql

数据库加密

在MySql安全配置方面,参考freebuf

整体设计

首先是初始化数据,然后登录界面,通过与数据库保存的密码进行判断。

整体使用MVC模式,

整体架构

分为ui、dao、utils等包。

ui包主要是界面方面的代码

dao是数据库操作模型类

utils放一些工具类,

SystemUtils.java:获取屏幕分辨率大小,
SqlUtils.java:
StringUtils.java:
HttpUtils.java:
security:加密解密部分工具类

利用的设计模式:

策略模式:工具类里的加密解密类。

单例模式:设置类、Dao访问

模板方法模式:

密码存储方面

密码使用hash函数进行加密,并且使用随机的salt作为加密的前缀或者后缀。

整体流程图

流程图如下:

第一个界面设计

第一个界面作为初始化数据,上面提供了几个输入框,作为数据库连接信息的输入,其中包括了连接地址(127.0.0.1或localhost,其中的区别为是否本地环回)、连接用户名、连接密码、连接端口。并提供默认值,提供重置、确定、测试按钮,当点击确定按钮后,并判断连接,返回信息,当连接成功后,后台进行初始化数据。

设计草图如下:

低保真原型图:

第二个界面设计

一个传统的登录界面,提供了用户名和密码的输入,其中通过不同帐号实现不同的权限,例如test只能查询3次,且对数据库是只读状态。而root用户可以对数据库进行操作,在登录的时候,不仅与数据库信息进行比对,还有其他的安全措施。

设计草图如下:

低保真原型图:

主界面设计

设计草图如下:

低保真原型图:

提供搜索框

数据库连接信息的储存

提供.config文件进行数据库连接信息加密保存

ISFISRT=
DB_ADD=
DB_USER=
DB_PASSWORD=
DB_PORT=

遇到的一些坑

0x01 java的getResourceAsStream

只能读取到源文件夹,或者是类文件夹,在打包部署时需要注意。

文件流为PropertiesUtils.class.getClassLoader().getResource(PROPERTIES_FILE_NAME);

0x02 如何使用java注解

0x03 properties文件写入权限

关于是否使用ORM框架

ORM

防止反编译部分

常见Java程序反编译软件是JD-Gui,

简单单元测试

提交测试用例

集成测试

测试应该渐渐自动化发展