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应用中,很难区分两者,所以只有不断的增长项目经验,不断的去思考,才能真正的理解这两层分层的真正意义。
java 控制层和业务层,控制层、业务层和数据访问层相关推荐
- 持久层和数据访问层_什么是持久层? JDBC 演变的 Mybatis 架构分析
前言 ORM 持久层指的是:将业务数据存储到磁盘,也具备长期存储能力,只要磁盘不损坏,如果在断电情况下,重启系统仍然可以读取数据 01.JDBC 1.1 什么是 jdbc JDBC(JavaDataB ...
- MyGeneration学习笔记(1) : 使用MyGeneration生成存储过程和数据访问层代码
MyGenertion是一款不错的代码生成ORM代码生成工具,下面是我学习过程中的一些笔记(总结了一下dOOdads C# Quick Reference文档,还有自己在使用和调试过程中遇到的问题及自 ...
- 抽象工厂+反射+依赖注入 实现对数据访问层和业务逻辑层的优化
分层思想的一个核心就是部件化,各个层之间是相互独立的,每一层可以随便抽取换成一个其他语言的版本,但只要与相应的接口吻合就行. 我用的三层架构大致是这样的,基本的三层就不说了,然后分别为业务逻辑层和数据 ...
- 细说业务逻辑 -- 丢失的业务逻辑层
前言 记得几个月前,在一次北京博客园俱乐部的活动上,最后一个环节是话题自由讨论.就是提几个话题,然后大家各自加入感兴趣的话题小组,进行自由讨论.当时金色海洋同学提出了一个话题--"什么是业务 ...
- 中台设计和实践:海量并发业务中台,新业务秒级接入交易中台
孙玄 奈学教育CEO 读完需要 10 分钟 速读仅需 3 分钟 10年技术老兵,擅长系统架构设计.大数据.运维.机器学习.技术管理等领域: 曾供职于百度.58集团.转转等公司. 本文根据孙玄老师在[d ...
- [4G5G专题-100]:MAC层 - 调度 - 4G LTE物理信道的功率控制3 - 上行信道功率控制
目录 第1章 上行功率控制概述 1.1 上行业务流程 1.2 上行功率控制的分类 1.3 下行信道的功率传输损耗 第2章 PRCH信道功率控制 2.1 PRACH开环功率控制的基本流程 2.2 PRA ...
- linux架构接口层教程,在LINUX平台上进行成功实现RIL层功能和框架层应用
1.课题研究的背景和意义 1.1 Android RIL简介 Android RIL(Radio Interface Layer)提供了无线基带Modem与电话应用之间的抽象层.在Android RI ...
- controll层跳转页面_java web开发中的各种层
java后端开发前,还是应该将各种层划分好,知道各自的作用,今天做一下总结. Dao层.Entity层.Service层.Controller层.view层 1.Dao层(持久层.数据访问层) 功能: ...
- 边做边学小型封装--利用主流框架进行Dao层通用化,Spring3.0+Hibernate3.3.2通用Dao层整合(四)...
了解Dao层的创建和HibernateSupportDao后,忘了要把Spring3.0的Jar包加进去lib文件夹里面,由于Spring3.0开始没有把所有需要有关联的Jar包跟功能整合包放在一起, ...
- [4G5G专题-56]:L2 MAC层-逻辑信道到物理信道的映射、MAC层包或PDU格式、MAC层复用与解复用
目录 第1章 L2 MAC层的架构 1.1 RAN的架构 1.2 L2 MAC层的架构 1.3 MAC层的帧调度功能 第2章 逻辑信道到物理信道的映射 2.1 映射示意图 2.2 逻辑信道 2.3 ...
最新文章
- svn 回归某一个特定版本
- SpringBoot+WangEditor上传图片
- 电脑磁盘空间不足怎么办_IT干货 丨 电脑C盘存储空间不足怎么办?
- Jenkins deploy to container部署war到tomcat(学习笔记十六)
- nanopi联网更新
- 【渝粤教育】国家开放大学2018年春季 建筑结构基础 参考试题
- Hbase Import导入数据异常处理-RetriesExhaustedWithDetailsException
- php 延时显示代码,php 延时显示代码
- JS-函数(调用返回值)-形参实参-作用域
- 转发:一个复杂系统的拆分改造实践
- 百度地图实现定位功能及城市选择
- 跨境电商:YouTube视频营销必看攻略
- lodop直接打印服务器的文件,C-Lodop云打印服务器
- [NOI Online 2021 入门组] 切蛋糕
- 独家连载 | 深度学习“四大天王”,你知道几个?
- 创建zemax非序列光学系统
- android rgmap,Android版的数字地质填图系统开始应用测试
- 一、判别一个分解的无损连接性
- 2013手机游戏引擎趋势:竞争升级
- 文档中如何插入计算机剪贴画,如何在Word中使用菜单命令插入图片和剪贴画