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

Java后端中dto、vo、entity的區(qū)別淺析

 更新時間:2023年01月31日 08:54:07   作者:sword?to?coding  
這篇文章主要給大家介紹了關于Java后端中dto、vo、entity區(qū)別的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

前言

在后端的項目開發(fā)中,我們經常會碰到一些包,比如dto、vo、entity,其中都會有一些實體類,但是每個包到底表示什么含義呢?

首先entity表示對數(shù)據庫中所有表的映射,是根據數(shù)據庫表字段設計出來的實體(要求表名與類名相同,字段名與成員變量名相同)

vo包表示前端頁面?zhèn)鬟^來的如表單等數(shù)據的字段,比如當前端填寫了一個表單,當前端傳過來的數(shù)據較多時,我們可以創(chuàng)建一個vo實體類,將前端傳來的數(shù)據字段名作為成員變量名,這樣我們就可以使用@RequestBody注解快速獲取參數(shù)內容,而不需要使用Request對象來一個個獲取,方便開發(fā)。

而dto包表示的是 vo和entity的一個中間轉換對象,是vo或entity對象中屬性的一個子對象。當前端傳來vo數(shù)據,我們提取vo中的數(shù)據到dto中,再將dto的數(shù)據處理后全部移動到entity中進行數(shù)據的保存。
反之亦然

舉個栗子

假如前端表單有數(shù)據 如下(id其實指的是用戶id):

id,username,age

而我們數(shù)據庫中的數(shù)據有(沒有age):

id,userId,username,createTime

這時我們controller層使用vo對象來接受前端傳過來的數(shù)據。

這時,我們要創(chuàng)建一個dto類作為vo與entity的中間轉換的對象(其實dto也可以看作在controller、service層的傳輸對象),這里創(chuàng)建的dto如下:

id、userId、username、createTime

我們要做的就是將vo對象做一定的處理后,然后創(chuàng)建出dto對象,在controller、service進行傳輸,最終再將service中的所有數(shù)據copy給entity,由dao層將entity數(shù)據存到數(shù)據庫中。

一個用于dto到entity的快速復制工具:

package com.swpu.utils;



import java.util.ArrayList;
import java.util.List;


public class BeanCopyUtil {
    /**
     * 根據現(xiàn)有對象的屬性創(chuàng)建目標對象,并賦值
     *
     * @param source
     * @param target
     * @param <T>
     * @return
     * @throws Exception
     */
    public static <T> T copyObject(Object source, Class<T> target) {
        T temp = null;
        try {
            temp = target.newInstance();
            if (null != source) {
                org.springframework.beans.BeanUtils.copyProperties(source, temp);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return temp;
    }
    /**
     * 拷貝集合
     * @param source
     * @param target
     * @param <T>
     * @param <S>
     * @return
     */
    public static <T, S> List<T> copyList(List<S> source, Class<T> target) {
        List<T> list = new ArrayList<>();
        if (null != source && source.size() > 0) {
            for (Object obj : source) {
                list.add(BeanCopyUtil.copyObject(obj, target));
            }
        }
        return list;
    }
}

總結

到此這篇關于Java后端中dto、vo、entity區(qū)別的文章就介紹到這了,更多相關后端dto、vo、entity區(qū)別內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決創(chuàng)建springboot后啟動報錯:Failed?to?bind?properties?under‘spring.datasource‘

    解決創(chuàng)建springboot后啟動報錯:Failed?to?bind?properties?under‘spri

    在Spring?Boot項目中,application.properties和application.yml是用于配置參數(shù)的兩種文件格式,properties格式簡潔但不支持層次結構,而yml格式支持層次性,可讀性更好,在yml文件中,要注意細節(jié),比如冒號后面需要空格
    2024-10-10
  • Java?AQS中ReentrantLock條件鎖的使用

    Java?AQS中ReentrantLock條件鎖的使用

    ReentrantLock繼承了Lock接口,?lock方法實際上是調用了Sync的子類NonfairSync(非公平鎖)的lock方法。ReentrantLock的真正實現(xiàn)在他的兩個內部類NonfairSync和FairSync中,默認實現(xiàn)是非公平鎖
    2023-02-02
  • Mybatis useGeneratedKeys參數(shù)用法及問題小結

    Mybatis useGeneratedKeys參數(shù)用法及問題小結

    這篇文章主要介紹了Mybatis useGeneratedKeys參數(shù)用法及遇到的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-05-05
  • Java Lambda表達式原理及多線程實現(xiàn)

    Java Lambda表達式原理及多線程實現(xiàn)

    這篇文章主要介紹了Java Lambda表達式原理及多線程實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-07-07
  • Java中的事件處理機制詳解

    Java中的事件處理機制詳解

    這篇文章主要介紹了Java中的事件處理機制詳解,Java事件處理是采取"委派事件模型",當事件發(fā)生時,產生事件的對象,會把此"信息"傳遞給"事件的監(jiān)聽者"處理,這里所說的"信息"實際上就是java.awt.event事件類庫里某個類創(chuàng)建對象,需要的朋友可以參考下
    2023-09-09
  • SpringBoot部署SSL證書(JKS格式)

    SpringBoot部署SSL證書(JKS格式)

    文將介紹如何在Spring Boot應用中部署SSL證書,以實現(xiàn)安全傳輸和保護數(shù)據隱私,具有一定的參考價值,感興趣的可以了解一下
    2023-10-10
  • Java實現(xiàn)簡單連連看游戲

    Java實現(xiàn)簡單連連看游戲

    這篇文章主要為大家詳細介紹了Java實現(xiàn)簡單連連看游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-05-05
  • Java代碼實現(xiàn)簡單酒店管理系統(tǒng)

    Java代碼實現(xiàn)簡單酒店管理系統(tǒng)

    這篇文章主要為大家詳細介紹了Java代碼實現(xiàn)簡單酒店管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-06-06
  • Java同學找工作最懵圈的問題:到底啥是分布式系統(tǒng)開發(fā)經驗?(推薦)

    Java同學找工作最懵圈的問題:到底啥是分布式系統(tǒng)開發(fā)經驗?(推薦)

    這篇文章主要介紹了分布式系統(tǒng)開發(fā)經驗,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • IDEA 2020.3.X 創(chuàng)建scala環(huán)境的詳細教程

    IDEA 2020.3.X 創(chuàng)建scala環(huán)境的詳細教程

    這篇文章主要介紹了IDEA 2020.3.X 創(chuàng)建scala環(huán)境的詳細教程,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-04-04

最新評論