马上迎来JavaWeb的结课作业以及实习,在边看视频边对上学期实习项目进行改进之后,我遇到了疑惑,怎样理解pojo层、dao层、service层、controller层?下面的图片为我上学期实习项目改进后的结果。
1、Pojo层:
(1)实体层 数据库在项目中的类
(2)model是模型的意思,与entity、domain、pojo类似,是存放实体的类。
(3)类中定义了多个类属性,并与数据库表的字段保持一致,一张表对应一个model类。
(4)主要用于定义与数据库对象应的属性,提供get/set方法,tostring方法,有参无参构造函数。
2、dao层
(1)持久层,主要与数据库进行交互
(2)又被成为mapper层,叫数据持久层,先设计接口,然后在配置文件中进行配置其实现的关联。
(3)dao层会调用pojo层,dao中会定义实际使用到的方法,比如增删改查。
(4)dao层的作用为访问数据库,向数据库发送sql语句,完成数据的增删改查任务。
(5)dao层的数据源和数据库连接的参数都是在配置文件中进行配置的,配置文件一般在同层的xml文件夹中
(6)数据持久化操作就是指,把数据放到持久化的介质中,同时提供增删改查操作,比如数据通过hibernate插入到数据库中
3、service层
(1)业务层,控制业务,Service层叫服务层,被称为服务,粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务
(2)service层调用dao层接口,接收dao层返回的数据,完成项目的基本功能设计。
(3)完成功能的设计和dao层一样都是先设计接口,再创建要实现的类,然后在配置文件中进行配置其实现的关联。
(4)service的impl是把mapper和service进行整合的文件 封装Service层的业务逻辑有利于业务逻辑的独立性和重复利用性。
4、controller层
(1)控制层 控制业务逻辑
(2)controller层负责具体的业务模块流程的控制,controller层负责前后端交互,接受前端请求,调用service层,接收service层返回的数据,最后返回具体的页面和数据到客户端。
5、utils层
顾名思义,存放一些工具类的层
当然还有一些静态资源层,也就是jsp页面、css样式表、图片等等,也称为View层。
业务逻辑
controller-->service接口-->serviceImpl-->dao接口-->mapper.xml-->db
在具体的项目中,其流程为:Controller层调用Service层的方法,Service层调用Dao层中的方法,其中调用的参数是使用Pojo层进行传递的。总的来说这样每层做什么的分类只是为了使业务逻辑更加清晰,写代码更加方便,所以有时候也需要根据具体情况来,但是大体的都是这样处理的,因为它其实就是提供一种规则,让你把相同类型的代码放在一起,这样就形成了层次,从而达到分层解耦、复用、便于测试和维护的目的。