码迷,mamicode.com
首页 > 其他好文 > 详细

Mapstruct使用笔记

时间:2018-02-07 22:45:04      阅读:541      评论:0      收藏:0      [点我收藏+]

标签:proc   rri   boolean   body   set   java   pst   dos   markdown   

Mapstruct 可以用来处理java实体间的转换,比如DTO转DO,DO转DTO。

Pom依赖如下

<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct</artifactId>
    <version>1.2.0.Final</version>
</dependency>
<dependency>
    <groupId>org.mapstruct</groupId>
    <artifactId>mapstruct-processor</artifactId>
    <version>1.2.0.Final</version>
    <scope>provided</scope>
</dependency>
public class BooleanIntegerMapper {
    public int asInt(boolean success) {
        return success ? 1 : 0;
    }

    public boolean asBoolean(int success) {
        return success == 1;
    }
}

@Mapper(uses = { BooleanIntegerMapper.class })
public interface FaultyMachineMapper {

    FaultyMachine doToDTO(FaultyMachineDO FaultyMachineDO);

    CloudboxFaultyMachineDO dtoToDO(FaultyMachine faultyMachine);

    List<FaultyMachine> dosToDTOs(Iterable<FaultyMachineDO> faultyMachineDOS);
}

Mapstruct会为FaultyMachineMapper生成实现类FaultyMachineMapperImpl,在工程的target目录下可以看到。Spring初始化时会实例化FaultyMachineMapperImpl对象,并且注入到需要使用的地方。

代码中的使用

public class FaultyMachineRepositoryImpl implements FaultyMachineRepository {

    private FaultyMachineMapper faultyMachineMapper = Mappers.getMapper(FaultyMachineMapper.class);

    @Setter
    private FaultyMachineDAO faultyMachineDAO;

    @Override
    public FaultyMachine getById(int id) {
        FaultyMachineDO faultyMachineDO = faultyMachineDAO.getById(id);
        FaultyMachine faultyMachine = faultyMachineMapper.doToDTO(faultyMachineDO);
        return faultyMachine;
    }

    @Override
    public int insertFaultyMachine(FaultyMachine faultyMachine) {
        FaultyMachineDO faultyMachineDO = faultyMachineMapper.dtoToDO(faultyMachine);
        return (int)faultyMachineDAO.insertFaultyMachine(faultyMachineDO);
    }
}

如果Java类中有一个字段是boolean类型的,对应DB中类型是tinyint,此时使用BeanUtil在DTO和DO之间copy时会报错提示参数类型不匹配。

使用以上的方式就不存在这个问题。

Mapstruct使用笔记

标签:proc   rri   boolean   body   set   java   pst   dos   markdown   

原文地址:https://www.cnblogs.com/umgsai/p/8428440.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!