项目简介
用到的知识:Java,Oracle,窗体
工具:IDEA、Oracle
项目整体架构
由此可见,项目也是采用的MVC架构,dao包用于操作数据库,entity包包含本项目的实体类,images包是本项目用到的图片,service包是服务层用于实现一些基本的逻辑操作,util包包含本项目用到的工具类,ui包是本项目的视图层,test包是单元测试。
功能实现
用户:
- 简单的登录注册,改密
- 个人信息管理
- 书目检索
- 借书,还书
- 根据用户平时的借阅喜好推荐类似的数据
- 查看借阅排行榜
- 查看借阅记录
管理员(商家):
- 对图书书进行基本的操作:增加,删除,修改,查询
- 管理用户
- 查看借阅记录信息
- 个人信息的修改
预览效果
登录页
用户主页
管理员页面
本项目采用的MVC架构,dao包用于操作数据库,entity包包含本项目的实体类,images包是本项目用到的图片,META-INF包是生成Jar包时产生的文件夹,util包包含本项目用到的工具类,view包是本项目的视图层,用于设计窗口显示,ui包是本项目的视图层,test包是单元测试。
项目包分析
util包
项目的工具包,
JdbcUtil.java主要是设计了数据库的驱动,地址,用户名及密码,和控制数据库的连接与断开
StringUtil.java只是用于判断字符串是否为空,只有空格也算为空
email.java 用于发送邮件
entity包
包含了数据库表的实体对象
Lombok是一个Java库,能自动插入编辑器并构建工具,简化Java开发。通过添加注解的方式,不需要为类编写getter或eques方法,同时可以自动化日志变量。
- @ToString 注解在类,添加toString方法。
- @NoArgsConstructor 注解在类,生成无参的构造方法。
- @AllArgsConstructor 注解在类,生成包含类中所有字段的构造方法。
- @Data
注解在类,生成setter/getter、equals、canEqual、hashCode、toString方法,如为final属性,则不会为该属性生成setter方法。
dao包
进行数据库的访问,面向接口编程
包含一些基本的用户操作,例如登录,修改信息等等,这里不一一列举。
service包
业务逻辑层,对从数据库拿到的数据进行一些简单的逻辑处理后传到前端展示
ui包
视图层是利用的swing组件设计,但这个不是项目的重点,因为Java的swing已经很少有人用了,可以直接使用idea中的JFormDesigner插件进行拖拉控件。
我们只需设计按钮和表格的触发事件
项目总结
项目中使用到了Java的swing技术,但是现在已经很少有人会用Java去写软件界面了,Java不能像C#那样拖拉控件设计界面,但是可以在idea中安装JFormDesigner插件实现C#那样的效果。
MVC全名是Model View
Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。
MVC即围绕着数据库进行操作,本项目只是简单地实现了对数据库的增删改查,比较适合新手练习。