在实际开发中实体类与DTO的属性往往不是完全一致的,在进行数据库插入操作时就会有许多冗余代码
,在看了别人的代码之后,进行了总结
serviceImpl
public ResponseDTO<Long> add(DTO addDTO) {
Entity entity = SmartBeanUtil.copy(addDTO, Entity.class);
Dao.insert(entity);
return ResponseDTO.succData(entity.getId());
}
SmartBeanUtil
/**
* 复制对象
*
* @param source 源 要复制的对象
* @param target 目标 复制到此对象
* @param <T>
* @return
*/
public static <T> T copy(Object source, Class<T> target) {
if(source == null || target == null){
return null;
}
try {
T newInstance = target.newInstance();
BeanUtils.copyProperties(source, newInstance);//copyProperties为JDK中的方法
return newInstance;
} catch (Exception e) {
throw new RuntimeException(e);
}
}
注意: