• 通过Orika的MapperFacade实现对象与对象的转化


    简介

    MapperFacade是Orika中最常用的接口之一,它的设计用于简化对象映射过程,能够高性能的将Java对象映射到其他Java对象中。

    使用步骤

    1.引入依赖

    
        ma.glasnost.orika
        orika-core
        1.5.4
    
    

    2.初始化MapperFactory 

    MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
    代码示例
    1. public class MapperFacadeUtil {
    2. private static MapperFacade mapper;
    3. static {
    4. //创建MapperFactory实例
    5. MapperFactory mapperFactory = new DefaultMapperFactory.Builder().build();
    6. //注册自定义转换器,用于处理日期或时间类型
    7. ConverterFactory converterFactory = mapperFactory.getConverterFactory();
    8. converterFactory.registerConverter(new BeanConv.LocalDateTimeConverter());
    9. converterFactory.registerConverter(new BeanConv.LocalDateConverter());
    10. converterFactory.registerConverter(new BeanConv.LocalTimeConverter());
    11. //获取MapperFacade
    12. mapper=mapperFactory.getMapperFacade();
    13. }
    14. }

     3.编写工具类

    此处以转换分页数据为例,此处进行两次转换,先转换page中非泛型的属性,再完成page内部列表数据的转换。

    1. public static Page toConversion(Page page,Class convertedClass){
    2. //如果page为空则直接返回
    3. if (EmptyUtil.isNullOrEmpty(page)){
    4. return null;
    5. }
    6. //获取page的字节码
    7. Classextends Page> pageClass = page.getClass();
    8. //转换page的外壳,创建一个模板类型为Page的新实例,复制page的非泛型属性
    9. Page converted = mapper.map(page, pageClass);
    10. //处理page内部列表的数据转换,完成整体的数据类型转换
    11. converted.setRecords(mapper.mapAsList(page.getRecords(),convertedClass));
    12. return converted;
    13. }

  • 相关阅读:
    java毕业设计动漫周边产品销售管理系统Mybatis+系统+数据库+调试部署
    elasticsearch有什么用
    N!的末尾有多少个0
    ARM 架构硬件新趋势:嵌入式领域的未来
    C# 异步编程async/await
    通讯录管理系统-C++课程设计
    11月19日绿健简报,星期六,农历十月廿六
    关于Maven依赖报红解决方案
    面向对象编程
    招投标系统软件源码,招投标全流程在线化管理
  • 原文地址:https://blog.csdn.net/weixin_52956719/article/details/139474595