欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

解讀controller層,service層,mapper層,entity層的作用與聯(lián)系

 更新時間:2023年11月03日 09:47:30   作者:要努力變強-  
這篇文章主要介紹了關(guān)于controller層,service層,mapper層,entity層的作用與聯(lián)系,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

controller層,service層,mapper層,entity層作用與聯(lián)系

1.controller層

controller層是用來接受前臺數(shù)據(jù)和返回頁面請求信息的,

Controller層是不允許直接操作數(shù)據(jù)庫的!它就像一個服務員,哪桌客人需要點菜了,就喊一聲服務員!

對應的,外界需要完成什么樣的業(yè)務,就通過Controller去調(diào)用不同的Service,需要記住的是Controller只是一個中間者或者轉(zhuǎn)發(fā)者,不應該在Controller里暴露Service的業(yè)務邏輯,而應該直接轉(zhuǎn)發(fā)Service的業(yè)務處理結(jié)果!

控制層,負責具體模塊的業(yè)務流程控制,需要調(diào)用service邏輯設(shè)計層的接口來控制業(yè)務流程。

controller通過接收前端H5或者App傳過來的參數(shù)進行業(yè)務操作,再將處理結(jié)果返回到前端。

@RestController
@RequestMapping("/user")
public class UserController {
 
    @Autowired
    private UserMapper userMapper;
    
    @GetMapping("/select")
    public List<User> index(){
        List<User> all = userMapper.findAll();
        return all;
    }
 
    @Autowired
    private UserService userService;
    @PostMapping("/insert")
    public boolean save(@RequestBody User user){
        return userService.saveUser(user);
    }
 
    @DeleteMapping("/{id}")
    public Integer delete(@PathVariable Integer id){
        return userMapper.deleteById(id);
    }

2.servie層

service層接受controller層信息,用于業(yè)務處理和邏輯判斷。Service 用于處理業(yè)務邏輯,會調(diào)用mapper層的API;

Service層是業(yè)務邏輯層,在該層進行復雜的業(yè)務邏輯處理,對在多個mapper層查到的數(shù)據(jù)進行組裝、處理,然后將結(jié)果返回給Controller,因此,一般情況下,一個Controller中可能包括多個Service,而一個Service中又或許包含多個mapper。

(舉例)controller層是飯店經(jīng)理,service是服務員,mapper層是廚房倉庫。

業(yè)務service層,給controller層的類提供接口進行調(diào)用。一般就是自己寫的方法封裝起來,就是聲明一下,具體實現(xiàn)在serviceImpl中。

public class UserService extends ServiceImpl<UserMapper, User> {
        public boolean saveUser(User user) {
            if(user.getId() == null){
            return save(user);//mybatis-plus提供的方法,表示插入數(shù)據(jù)。
            }else{
            return updateById(user);
        }
}

3.mapper層

mapper層(數(shù)據(jù)持久化層,專門用來跟數(shù)據(jù)庫打交道的)。

mapper層用于和數(shù)據(jù)庫交互,想要訪問數(shù)據(jù)庫并且操作,只能通過mapper層向數(shù)據(jù)庫發(fā)送sql語句,將這些結(jié)果通過接口傳給service層,對數(shù)據(jù)庫進行數(shù)據(jù)持久化操作,他的方法語句是直接針對數(shù)據(jù)庫操作的,

主要實現(xiàn)一些增刪改查操作,在mybatis中方法主要與與xxx.xml內(nèi)相互一一映射。

@Mapper
@Repository
public interface UserMapper extends BaseMapper<User> {//數(shù)據(jù)庫查詢接口,專門用來跟數(shù)據(jù)庫交互用的
    @Select("SELECT * from sys_user")
    public List<User> findAll();
 
    List<User> findAll1();
    @Insert("INSERT into sys_user(username,password,nickname,email,phone,address)VALUES(#{username},#{password},#{nickname}," +
            "#{email},#{phone},#{address});")
    public int insert(User user);
 
    public int updateUser(User user);
 
    @Delete("delete from sys_user where id = #{id}")
    public Integer deleteById(@Param("id") Integer id);

4.entity層

entity層創(chuàng)建實體類,和數(shù)據(jù)庫表里面屬性值一一對應。

實體層,用于存放我們的實體類,與數(shù)據(jù)庫中的屬性值基本保持一致,實現(xiàn)set和get的方法或者使用注解的方式。

@Data//Data注解代替了get和set方法
@TableName(value = "sys_user")
public class User {
    @TableId(type = IdType.AUTO)
    private Integer id;
    private String username;
    private String password;
    private String nickname;
    private String email;
    private String phone;
    private String address;
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • IDEA中如何引入spring的命名空間

    IDEA中如何引入spring的命名空間

    這篇文章主要介紹了IDEA中如何引入spring的命名空間問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java集合與數(shù)組區(qū)別簡介及相互轉(zhuǎn)換實例

    Java集合與數(shù)組區(qū)別簡介及相互轉(zhuǎn)換實例

    這篇文章主要介紹了Java集合與數(shù)組區(qū)別簡介及相互轉(zhuǎn)換實例,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01
  • springmvc限流攔截器的示例代碼

    springmvc限流攔截器的示例代碼

    本篇文章主要介紹了springmvc限流攔截器的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-12-12
  • jxl 導出數(shù)據(jù)到excel的實例講解

    jxl 導出數(shù)據(jù)到excel的實例講解

    下面小編就為大家分享一篇jxl 導出數(shù)據(jù)到excel的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • MyBatis主鍵自增的兩種實現(xiàn)方法

    MyBatis主鍵自增的兩種實現(xiàn)方法

    本文主要介紹了MyBatis主鍵自增的兩種實現(xiàn)方法,主要包括注解方式或配置文件方式來實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-01-01
  • Maven和IntelliJ IDEA搭建多模塊微服務的實現(xiàn)

    Maven和IntelliJ IDEA搭建多模塊微服務的實現(xiàn)

    本文主要介紹了Maven和IntelliJ IDEA搭建多模塊微服務的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-05-05
  • Java安全編碼:防范Java安全漏洞的最佳實踐

    Java安全編碼:防范Java安全漏洞的最佳實踐

    Java作為一種跨平臺的編程語言,在廣泛應用的同時,也會從時至時出現(xiàn)安全漏洞,這些漏洞可能會對Java應用程序的安全性造成嚴重威脅,因此,必須采取必要的措施,以確保Java應用程序的安全性,以最佳實踐來防范Java安全漏洞,是應對安全威脅的最好方法之一,
    2024-01-01
  • 淺談幾種Java自定義異常處理方式

    淺談幾種Java自定義異常處理方式

    在Java中,異常是一種常見的處理機制,本文主要介紹了淺談幾種Java自定義異常處理方式,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • springboot配置redis過程詳解

    springboot配置redis過程詳解

    這篇文章主要介紹了springboot配置redis過程詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-09-09
  • Java代碼實現(xiàn)矩形覆蓋實例

    Java代碼實現(xiàn)矩形覆蓋實例

    這篇文章主要介紹了Java代碼實現(xiàn)矩形覆蓋實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,,需要的朋友可以參考下
    2019-06-06

最新評論