java 控制层和业务层,控制层、业务层和数据访问层

写这个主要有两个方面的原因,第一就是为了加深一下自己的理解和记忆,第二则是为刚刚接触JavaWeb开发和没有正确认识分层的人接触一些疑惑。 首先先说数据访问层,这个层一般都叫做Dao(Data Access Object)层,主要就是用来和数据库打交道的,该层也目标和十分明确,就是需要我们在这层写一些最底层的方法,比如最常见的几种:save、update、deleteById、deleteAll、findById、findAll,以及一些封装的分页查询方法等等,当然也有一些比较通用的,比如用户登录和注册会根据用户名进行查询,我们自然会需要一个方法如findByUserName等。这层的宗旨只有一个,与数据库直接打交道,语句也要尽量的保证在本模块的通用性,比如多条件查询的方法findByParams,我们可以传递一个Map,来记录多个参数和多个值之间的对应关系,以便实现多条件的查询。 其次就是业务层(Service,Business,Biz均可),这个层对于初学者来说,第一反应就是和Dao没什么区别。不过随着项目经验的积累,我们会逐渐的感觉到,业务层其实才是Web开发的核心,是这几个层中最重要的东西。一个优秀的开发者,可以清晰的划分出业务层和数据访问层之间的界限。举个例子来说,用户登录这算是一个业务方法,在业务层我们要做的就是对这个业务进行逻辑的拆分,然后将用户登录这个业务方法暴露给上层(可能是控制层,也可能直接暴露成为接口)。而业务的拆分也很简单,用户登录无外乎根据用户名查询用户,并判断密码的正确性之后将成功与否(true/false)返回上层即可。再举个例子,有时候我们会遇到一些情况,比如某个实体(Book)会有多个类型:英语类(type=1)、计算机类(type=2),但我们需要分开查询两个类型的实体(两个查询方法,findEngBookByParams和findPcBookByParams),这时,我们只需要在业务方法的逻辑中,分别在findEngBookByParams和findPcBookByParams的Map参数集合中,put入type=1和type=2即可,并不需要去数据访问层再写方法。 至于控制层,主要就是对业务方法的调用和一些response的处理而已,并没有太多可说的。 数据访问层和业务层有时候确实很相似,尤其是在一些简单的Web应用中,很难区分两者,所以只有不断的增长项目经验,不断的去思考,才能真正的理解这两层分层的真正意义。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值