Java Web 三层架构案例 信息管理系统

三层架构:

与MVC设计模式的目标一致:都是为了解耦合,提高代码复用
区别:二者对于项目理解的角度不同。想看我写的 MVC模式 案例的点击此处。

组成:
  • 表示层(view 视图层):
    前台:界面的显示、和用户交互;jsp、js、html;
    代码位置:WebContent
    后台:控制跳转,调用业务逻辑层;servlet;
    代码位置:xxx.servlet

  • 业务逻辑层(Service 层):
    接收表示层的请求;
    组装数据访问层(带有逻辑的增删改查,如:删 = 查 + 删)
    代码位置: xxx.service(也有xxx.manager, xx.bll)

  • 数据访问层(Data Access Layer,Dao层):
    直接访问数据库的操作,原子性(增删改查)
    代码位置: xxx.dao

  • 一张图形象展示:
    在这里插入图片描述

ThreeTireSample 案例分析:

本案例中我们以学生信息管理系统为例,进行详细分析。通过对这个案例的复盘,我觉得将来的任何管理系统也没有大问题了,无非就是这些操作嘛!这个过程中要注意我们写代码的顺序。
在这里插入图片描述

Entity层的实现:

先写实体类,我们放在 xxx.xxx.entity包下。实体类中我们写的是学生信息,先写学生的属性,之后当然是一键生成 Get 和 Set 方法,以及生成构造方法。建议多写两种构造方法如下图:
在这里插入图片描述

Dao层的实现:

写 Dao 层,在这里将我们要对系统进行的操作都写出来。建议面向接口开发:先写接口再写实现类:
在这里插入图片描述
见名知意,这几个操作分别是:

  • 根据学号查询是否存在
  • 根据学号查询某一学生
  • 根据学生信息向数据库中添加学生
  • 无需参数查询到所有学生,以集合返回
  • 根据学号删除某一学生
  • 根据学号和新信息,对学生信息进行更新

在 DaoImp 层,写了它们的实现,这些实现无非就是 与数据库建立连接和驱动,写 SQL 语句,填入参数进行修改,执行操作后判断并且返回。一个例子:
在这里插入图片描述

其实在这一部分,我对操作数据库的代码还没有达到牢记于心,还有对于 try catch finally 块的原理还没搞清楚。
Service 层的实现:

写完这里,我们的最底层功能就实现了。我们再看那张层次分析图,与上边的分析图结合。此时,数据访问层里原子性的增、删、改、查已经写完了,提供了很多功能组合供上层使用。
在这里插入图片描述

接下来我们就写逻辑层的代码,位于包 xx.xx.service 中。

  • 增加学生逻辑:先判断学生是否存在,不存在的话增加学生,返回布尔值。
    在这里插入图片描述
  • 删除学生,判断学生是否存在,存在的话即可删除,返回布尔值。
    在这里插入图片描述
  • 对学生进行修改,返回布尔值。
    在这里插入图片描述
  • 根据学号查询某个学生,返回学生实体。
    在这里插入图片描述
  • 查询所有学生,返回一个集合。
    在这里插入图片描述
表示层后台 Servlet的实现:

这里也就是一些逻辑性的操作了,与前台和业务逻辑层进行交互,并且要结合前台代码。我们建议一个 Servlet 对应一个功能,比如 增加的 Servlet,删除的 Servlet,查询的 Servlet等等。
写法:设置响应编码防止乱码;判断这一方法需要哪些参数;这些参数从哪儿来,要放到 Service 的哪个方法去······

向前台跳转时注意
如图:QueryAllServlet,设置响应编码,将需要的参数返回给前端。
在这里插入图片描述

表示层前台 Jsp 的实现:

我们同样配合 QueryAllServlet,展示一下 index.jsp 的代码。
在这里插入图片描述
其实就是将得到的集合进行遍历输出!

页面效果展示(基本上没有前端美化):

基本上没写前端美化,但是功能详尽。页面大家凑合着看,属是有点丑
在这里插入图片描述
简单介绍一下功能,需要的朋友我会分享代码。
点击某人的学号进行信息修改,除了学号其他信息都可以修改。
其实有了这个案例,信息管理系统基本就没问题了,大家可以按照自己的需求增加实体类的属性。

此外,在将 Eclipse 代码导入到 idea 时,遇到了很多问题,这里有一篇博客解决了我的困扰。大家可以 mark 起来,以备不时之需。

我会将这次的代码上传到CSDN,免费下载。进入我的主页即可看到我上传的资源。如果官方强行收费可以私我获取。ThreeTireSample.zip

说在最后的话:编写实属不易,若喜欢或者对你有帮助记得点赞+关注或者收藏哦~

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值