客户管理系统开发定制controller层,service层,mapper层,entity层的作用与联系。

 

一. controller层

controller客户管理系统开发定制层是用来接受前台数据客户管理系统开发定制和返回页面请求信息的,Controller客户管理系统开发定制层是不允许直接操作数据库的!它就像一个服务员,哪桌客人需要点菜了,就喊一声服务员!对应的,外界需要完成什么样的业务,就通过Controller去调用不同的Service,需要记住的是Controller只是一个中间者或者转发者,不应该在Controller里暴露Service的业务逻辑,而应该直接转发Service的业务处理结果!控制层,负责具体模块的业务流程控制,需要调用service逻辑设计层的接口来控制业务流程。controller通过接收前端H5或者App传过来的参数进行业务操作,再将处理结果返回到前端。
  1. @RestController
  2. @RequestMapping("/user")
  3. public class UserController {
  4. @Autowired
  5. private UserMapper userMapper;
  6. @GetMapping("/select")
  7. public List<User> index(){
  8. List<User> all = userMapper.findAll();
  9. return all;
  10. }
  11. @Autowired
  12. private UserService userService;
  13. @PostMapping("/insert")
  14. public boolean save(@RequestBody User user){
  15. return userService.saveUser(user);
  16. }
  17. @DeleteMapping("/{id}")
  18. public Integer delete(@PathVariable Integer id){
  19. return userMapper.deleteById(id);
  20. }

二.servie层

service层接受controller层信息,用于业务处理和逻辑判断。Service 用于处理业务逻辑,会调用mapper层的API;Service层是业务逻辑层,在该层进行复杂的业务逻辑处理,对在多个mapper层查到的数据进行组装、处理,然后将结果返回给Controller,因此,一般情况下,一个Controller中可能包括多个Service,而一个Service中又或许包含多个mapper。(举例)controller层是饭店经理,service是服务员,mapper层是厨房仓库。业务service层,给controller层的类提供接口进行调用。一般就是自己写的方法封装起来,就是声明一下,具体实现在serviceImpl中。
  1. public class UserService extends ServiceImpl<UserMapper, User> {
  2. public boolean saveUser(User user) {
  3. if(user.getId() == null){
  4. return save(user);//mybatis-plus提供的方法,表示插入数据。
  5. }else{
  6. return updateById(user);
  7. }
  8. }

三.mapper层

mapper层(数据持久化层,专门用来跟数据库打交道的)。mapper层用于和数据库交互,想要访问数据库并且操作,只能通过mapper层向数据库发送sql语句,将这些结果通过接口传给service层,对数据库进行数据持久化操作,他的方法语句是直接针对数据库操作的,主要实现一些增删改查操作,在mybatis中方法主要与与xxx.xml内相互一一映射。
  1. @Mapper
  2. @Repository
  3. public interface UserMapper extends BaseMapper<User> {//数据库查询接口,专门用来跟数据库交互用的
  4. @Select("SELECT * from sys_user")
  5. public List<User> findAll();
  6. List<User> findAll1();
  7. @Insert("INSERT into sys_user(username,password,nickname,email,phone,address)VALUES(#{username},#{password},#{nickname}," +
  8. "#{email},#{phone},#{address});")
  9. public int insert(User user);
  10. public int updateUser(User user);
  11. @Delete("delete from sys_user where id = #{id}")
  12. public Integer deleteById(@Param("id") Integer id);

四.entity层

entity层创建实体类,和数据库表里面属性值一一对应。实体层,用于存放我们的实体类,与数据库中的属性值基本保持一致,实现set和get的方法或者使用注解的方式。
  1. @Data//Data注解代替了get和set方法
  2. @TableName(value = "sys_user")
  3. public class User {
  4. @TableId(type = IdType.AUTO)
  5. private Integer id;
  6. private String username;
  7. private String password;
  8. private String nickname;
  9. private String email;
  10. private String phone;
  11. private String address;
  12. }

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发