您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页MapStruct-Java实体转换利器

MapStruct-Java实体转换利器

来源:化拓教育网

MapStruct 概述

MapStruct 是一个用于生成映射器接口的代码生成库,主要用于简化 Java 对象之间的转换过程。在处理不同模型之间数据转换时,MapStruct 可以自动生成实现类减少手工转换逻辑的工作量。

使用步骤:

MapStruct 使用例子

列举一种最简单的mapstruct的使用,dto->entity的转换

UserDTO

@Data // lombok
public class UserDTO {
    private String name;
    private int age;
}

UserEntity

@Data // lombok
public class UserEntity {
    private String username;
    private int userAge;
}

UserDTOConverter ( mapstruct 接口)

@Mapper
public interface UserModelConverter {

    UserModelConverter INSTANCE = Mappers.getMapper(UserModelConverter.class);

    /**
    * dto->entity 的转换
    */
    UserEntity convertDtoToEntity(UserDTO dto);

    /**
    * entity->dto 的转换
    */
    UserDTO convertEntityToDto(UserEntity entity);
}

UserModelConverterImpl (自动生成)

public class UserModelConverterImpl implements UserModelConverter {

    @Override
    public UserEntity convertDtoToEntity(UserDTO userDto) {
        if ( userDto == null ) {
            return null;
        }

        UserEntity useEntity = new UserEntity();

        useEntity.setUserName( userDto.getName() );
        useEntity.setUserAge( userDto.getAge() );

        return useEntity;
    }



    @Override
    public UserDTO convertEntityToDto(UserEntity userEntity) {
        if ( userEntity == null ) {
            return null;
        }

        UserDTO userDto = new UserDTO();

        userDto.setName( userEntity.getUserName() );
        userDto.setAge( userEntity.getUserAge() );

        return userDto;
    }
}

自动生成的impl类贴图:

Service 层使用

public class UserServiceImpl implements UserService {

    @Override
    public add(UserDTO userDto){
       UserEntity userEntity =  UserModelConverter.INSTANCE
        .convertDtoToEntity(userDto);
       // 插入到数据库中 .... 
    }

}

更详细的用法,可以参考

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务