Java项目基础实例
本文最后更新于 2020年4月11日 凌晨
引言
本文章,主要是作为Java小型项目演示–人事管理系统,未具有商用价值,仅为学术研究。
(因为现在很少人用Java打界面,所以界面等未完全规划,仅为一次Java入门项目演示)
需求分析
为了方便用户对Sql表进行可视化增、删、改、查、导入、导出。设计改系统进行可视化操作;项目还处于起步,思路:
项目结构
数据库 | 媒介 | 工具类 | 特殊-Excel导入Mysql | UI界面 |
---|---|---|---|---|
CommonDao | Department | browser | InExcel | MainFrame |
EmpDao | Employee | ExportExcel | Read\_Excel | Refind |
UserDao | salary | DBOut | Read\_Mysql | RegisterFrame |
User | Md5 | SQLselect | Result | |
Print_Error | ||||
Check_Image |
调用包
java jdk-8.jar
poi-3.7-20101029.jar
poi-examples-3.7-20101029.jar
poi-ooxml-3.7-20101029.jar
poi-ooxml-schemas-3.7-20101029.jar
poi-scratchpad-3.7-20101029.jar
mysql-connector-java-8.0.15.jar
log4j-1.2.17.jar
commons-logging-1.2.jar
jxl-2.6.12.jar
数据库实现
CommonDao
数据库连接功能
EmpDao
数据库Emp表的增、删、改、查
UserDao
数据库User表的增、删、改、查
工具类实现
browser
打开外链(我用来打开“开发者文档”/“帮助文档”)
DBOut
数据库sql表导出为Excel表格
ExportExcel
数据库部分sql表导出为Excel表格
Md5
Md5加密类,传入String类型字符串,返回改加密后内容
Print_Error
日志文件、异常报错输出到日志文件
Check_Image
登入图形验证码核心实例代码
UI界面实现
MainFrame
主要窗口(登入)
Refind
找回密码页面
RegisterFrame
注册账户、用户权限建立
SQLselect
管理员模糊查询界面
SQLselect2
普通用户模糊查询界面
注册/登陆
权限分级
根据用户不同需求分为:
管理员
可以对数据库表进行增、删、改、查、导出、导入
普通用户
仅能对数据库进行查、导出
用户登陆
使用工具类-Md5对密码进行加密传输
为了防止来自网络的“字典爆破”,对密码采取Md5加密
为了防止多用户恶意多次无效请求造成服务器负载,对登陆用户采取图形验证码
用户注册
注册时,可以根据用户的需求,注册不同用户权限的账户
注册时填写的密保钥匙用于找回密码(重置密码)
日志功能
针对用户不同操作,如:用户尝试登陆、用户密码错误等操作,进行日志输出功能,日志文件存储在keyservice.log文件内
额外功能
对可能存在的异常报错,输出至keyservice.log文件内,方便后期程序调试。
操作功能
查询、删除功能
查找,针对用户提供的关键字,对全表进行检录;并提供删除功能
修改功能
针对用户选中的数据,用户可在修改页面进行选定项内部内容修改
添加功能
用户可在添加页面添加数据内容
导入功能
管理员用户可以选择一个和数据库表头相同的xls、xlsx表文件进行导入操作
导出功能
用户可以导出当前查询的结果为xls表格
部分功能代码实现
用户密码MD5加密
调用security.MessageDigest类
1 |
|
外链跳转
1 |
|
Mysql表格转Excel(部分表格导出)
需要依赖apache.poi.jar
Mysql表转Excel(全表格导出)
调用poi2.7jar外部包
1 |
|
使用:
比如打印数据库内user表,只需要
1 |
|
Excel导入Mysql
InExcel
主要操作类,将Excel生成的二维表导入Mysql
Read_Excel
读取选定Excel表,生成二维表
Read_Mysql
读取Mysql数据,查询是否可以插入
Result
返回结果,是否成功
图形验证码实现
Check_Image
使用随机线段和随机颜色,在String库中,挑选4个字符,生成图片
1 |
|
安全实现
数据库内容备份
每日24点,由服务器自动备份数据库文件
用户密码加密
用户密码Md5加密,防止“字典爆破”
规划
B/S化结构
计划实现B/S项目结构,使用SpringBoot+MyBatis,目前没有打算MVC结构
MongoDB
MongoDB是基于分布式文件存储的数据库,为WEB应用提供可扩展的高性能数据存储解决方案;
为了预防用户使用过程中多次读写,使用MongoDB对数据进行缓冲。