当前位置: 首页 > news >正文

淮安建设工程协会网站查询系统南京市建设局网站栖霞

淮安建设工程协会网站查询系统,南京市建设局网站栖霞,网络营销产品策略树状图,购物网站详细设计mapstruct- 让VO#xff0c;DTO#xff0c;ENTITY转换更加便捷 1. 简介 MapStruct是一个代码生成器#xff0c;简化了不同的Java Bean之间映射的处理#xff0c;所谓映射指的就是从一个实体变化成一个实体。例如我们在实际开发中#xff0c;DAO层的实体和一些数据传输对…mapstruct- 让VODTOENTITY转换更加便捷 1. 简介 MapStruct是一个代码生成器简化了不同的Java Bean之间映射的处理所谓映射指的就是从一个实体变化成一个实体。例如我们在实际开发中DAO层的实体和一些数据传输对象(DTO)大部分属性都是相同的只有少部分的不同通过mapStruct可以让不同实体之间的转换变的简单。我们只需要按照约定的方式进行配置即可。 2. 使用背景 项目中有很多的VO和实体在进行各层之间数据传输的时候就需要不断进行转换之前手敲的getset非常的枯燥乏味且低效刚好遇到了这个工具。 使用mapstruct仅需要我们写一个interface接口使用Mapper标注并且提供一个静态的实例之后编写转换的方法方法的参数是转换的原类型方法的返回值是转换的目标类型。 3. 开发环境 mavenjdk1.8idea 4. pom propertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetmapstruct.version1.4.2.Final/mapstruct.version /properties dependenciesdependencygroupIdorg.projectlombok/groupIdartifactIdlombok/artifactIdversionRELEASE/versionscopecompile/scope/dependencydependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct/artifactIdversion${mapstruct.version}/version/dependencydependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion${mapstruct.version}/version/dependency /dependencies注意 **pom文件中依赖的引入顺序为先引入lombok再引入mapstruct的依赖。**否则在mapstruct映射的时候转换的对象没有getset方法将会遇到很多问题 比如 Error:(15, 13) java: No property named “id“ exists in source parameter(s). Did you mean “null“? 比如生成的转换接口实现类中没有对应的getset无法转换 5. entity和VO 相互转换的类 package com.drc.mapstruct.vo;import lombok.Data;import java.util.Date; Data public class OrderVO {private String orderId;private String product;private String money;private Date date; }package com.drc.mapstruct.entity;import lombok.Data;import java.util.Date;Data public class OrderEntity {private Integer id;private String orderId;private String product;private String money;private Date date;private String userId; }6. OrderConverter 需要定义的转换接口 package com.drc.mapstruct.converter;import com.drc.mapstruct.entity.OrderEntity; import com.drc.mapstruct.vo.OrderVO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.Mappings; import org.mapstruct.factory.Mappers;Mapper public interface OrderConverter {OrderConverter INSTANCE Mappers.getMapper(OrderConverter.class);// 将实体类转换成VOOrderVO orderEntityToVO(OrderEntity orderEntity);// 将VO转换成实体类OrderEntity orderVOToEntity(OrderVO orderVO); } 7. mvn compile 编译之后即可生成OrderConvert实现类实现类在target目录中实现类的具体代码可以在里面看到 我在网上查了下有说需要手工编译进入到pom所在的目录cmd中执行mvn compileidea不行 我这边两个都试了都OK的 8. 实现类 package com.drc.mapstruct.converter;import com.drc.mapstruct.entity.OrderEntity; import com.drc.mapstruct.vo.OrderVO; import javax.annotation.Generated;Generated(value org.mapstruct.ap.MappingProcessor,date 2023-02-15T17:10:280800,comments version: 1.4.2.Final, compiler: javac, environment: Java 1.8.0_301 (Oracle Corporation) ) public class OrderConverterImpl implements OrderConverter {Overridepublic OrderVO orderEntityToVO(OrderEntity orderEntity) {if ( orderEntity null ) {return null;}OrderVO orderVO new OrderVO();orderVO.setOrderId( orderEntity.getOrderId() );orderVO.setProduct( orderEntity.getProduct() );orderVO.setMoney( orderEntity.getMoney() );orderVO.setDate( orderEntity.getDate() );return orderVO;}Overridepublic OrderEntity orderVOToEntity(OrderVO orderVO) {if ( orderVO null ) {return null;}OrderEntity orderEntity new OrderEntity();orderEntity.setOrderId( orderVO.getOrderId() );orderEntity.setProduct( orderVO.getProduct() );orderEntity.setMoney( orderVO.getMoney() );orderEntity.setDate( orderVO.getDate() );return orderEntity;} }9. 使用 使用也很简单直接使用接口中定义的常量就能获得转换器对象之后调用方法就可以进行转换 简单示例 OrderConverter orderConverter OrderConverter.INSTANCE; OrderEntity orderEntity new OrderEntity(); orderEntity.setId(1); orderEntity.setOrderId(10001); orderEntity.setDate(Date.from(Instant.now())); orderEntity.setMoney(1000元); orderEntity.setProduct(自行车); orderEntity.setUserId(9999); OrderVO orderVO orderConverter.orderEntityToVO(orderEntity); System.out.println(orderVO);
http://www.dnsts.com.cn/news/104595.html

相关文章:

  • 秦皇岛开发区建设局网站网站地图 制作
  • 彩票网站开发多少钱手机app开发工具有哪些
  • 钦州市网站建设免费建设游戏对战平台网站
  • 如乐网站深圳seo优化多少钱
  • 珠海手机网站建设推广公司自己做网站处理图片用什么软件
  • 服务器主机 网站开源自动化运维平台
  • 商城网站主机网站视觉首页怎么做
  • 网站开发工具与技术有什么做调查的网站
  • 3 阐述网站建设的步骤过程网页制作程序
  • 长沙高新区住房和建设管理局网站白家乐网站怎么建站
  • 做贸易进出口要什么网站平台公司logo背景墙设计效果图
  • 帝国网站管理系统入门教程上传wordpress到lamp
  • 网站推广属于什么行业建工网校论坛
  • 自己开网站工作室flash网站cms
  • 网站设计难点网站开发vue
  • 中国人去菲律宾做网站赌钱会抓吗有哪些做兼职的设计网站有哪些工作
  • 开发网站需要注意西部网站管理助手 伪静态
  • 企业网站建设排名网址建筑网站的设计与实现的论文
  • 网站设计目标 优帮云怎样做买东西的网站
  • 论论坛坛网网站站建建设设江阴网站设计
  • idc网站模板源码下载昆明网红打卡地
  • vs2012网站开发怎么查网站是用什么语言做的
  • 可以做电算化的网站免费模板网站知乎
  • 重庆建设工程造价管理协会网站性价比高的网站建设
  • 礼品册兑换 网站建设智慧团建在线登录
  • 手机做网站的网站不需要丢链接可以百度收录的网站
  • ps企业站网站做多大的网页编辑简单分为网页美工编辑和
  • 成都网站建设模版国外做滑板网站
  • 网站备案帐号是什么意思the7企业中英文wordpress模板
  • 网站建设看什么书crm系统开发