我用的是spring mvc+mybatis,问一下service层应该都需要写什么

我想问一下service层,dao层,control层都应该写什么?
我们项目经理说 service层只要写一个dao引用,service和表是一一对应的,
我觉得service既然是业务层是不是所有业务相关的都要写?
比如学生,班级,成绩三个表
我们现在是对应学生表有一个增删改查的dao和service,
对应班级表有一个增删改查的dao和service,
对应成绩表有一个增删改查的dao和service,

如果查询及格的学生的班级和姓名
是不是要在学生control里调用成绩和班级的service?
还是在学生service实现类里调用成绩和班级的service来获得结果呢?

真不知道代码规范是什么。求有经验的大神详细讲解一下谢谢了

6个回答

service层,dao层,control层
control层,是请求入口,一般模块不大的话,那一个control就是一个模块的入口,若模块很大,那就分几个control
service层,也是按模块分,几个模块就是几个service
dao层,每一个实体(数据库表)就是一个dao。

control调用service,service调用dao,禁止control调用dao(约定俗成的规范)
service也可以调其他的service

一个service也不局限于只调用本身对应的DAO。
你说的查询及格的学生的班级和姓名,可以在学生的sevice中注入班级和成绩的DAO这是一种;还有一种是在你的学生表中建有班级和成绩的关联关系。
同样可以查询出想要的结果,在service中出来业务逻辑,调用DAO层,实现对数据库的操作。

你问这个问题其实就是体现你mybatis不熟,直接在service中调用dao的接口,在dao中与数据库交互,用xml与dao映射即可

写业务逻辑图片说明图片说明图片说明

按照你的描述,service其实是bll(business logical layer),那么它应该是业务逻辑。你的“项目经理”说的bll什么代码都没有,除了调用dal,那是编写最简单的学生习作的代码,程序本身没有业务,只有增删改查。
什么叫业务逻辑?比如说一个电子商务网站,提供一个产品比较的功能,那么除了查询对应产品的参数以外,需要对这些参数进行比较,相同的,不同的,这个就是业务逻辑。

一般到service层更多地关注的是直接对数据库操作了,尽量少地在service层写业务逻辑。在controller层就应该把数据准备好。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问