JAVA分层概念

 

编写JAVA程序的层次关系

现阶段用到的层次:

  1. entity(实体层):就是对应的数据库表的实体类
  2. service层(业务层):用于编写业务逻辑
  3. DAO层(数据传输层):service层数据与数据库进行交互的一些类
  4. util(工具层):存放一些工具类
  5. servlet:Servlet层用于接收请求并且调用对应service层处理请求,是Java各层中最接近浏览器的一层。

servlet、service、dao三者的关系

以验证用户名密码是否正确为例:

首先,servlet层接收到由用户在浏览器输入的userName and password。然后再servlet层调用service层把接收过来的数据作为参数传给service层。在service层内部,调用了DAO层。并把数据传输给DAO层,DAO层通过连接数据库,对数据的逐一比对。如果该数据在数据库存在,那么返回该数据给service层,service层再把数据返回给servlet层。最后servlet再对此数据进行操作。


一些常见的问题:

JAVA中Servlet层、Service层 、modle层 、 Dao层的功能区分?
答:Servlet层用于接收请求并且调用对应service层处理请求,是Java各层中最接近浏览器的一层。Service层主要编写具体业务逻辑,每个Service一般包含一组相关的业务逻辑(比如用户管理是一个Service,文章管理是一个Service)。modle/entity层(统称模型层)就是对应的数据库表的实体类,一般每个模型层类对应一个数据库“表”,一般是用于ORM对象关系映射,一方面方便从数据库取数据时保存为类,一方面也方便写入数据库,简而言之就是为了方便操作数据库。Dao层一般用于对数据库的具体操作,包括各种具体的增删改查语句和数据库数据和Java模型的映射。Util层主要用于存在项目各层都有可能出现、不好划分到某层中、出现频率较高的功能(类),比如连接数据库、获取系统参数、导出Excel表……

为什么将Service(Dao)层设为接口层,要在实现类里写逻辑呢?
答:主要还是为了方便项目管理,增加代码的复用性。当项目很大、代码很多时,可能存在多种业务逻辑类似但具体业务有所区别的需求,此时让它们都集成同一个接口层就好了(只是情景之一)。

为什么要用service层封装?
答:这个问题就像Java为什么要分层一样。一般来说,某一个程序的有些业务流程需要连接数据库,有些不需要与数据库打交道而直接是一些业务处理,这样就需要我们整合起来到service中去,这样可以起到一个更好的开发与维护的作用,同时也是MVC设计模式中model层功能的体现。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值