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

长春网站建设net龙岩小程序推广

长春网站建设net,龙岩小程序推广,wordpress3.6下载,做内贸注册什么网站源码#xff1a;https://gitee.com/cao_wen_bin/test 最近在公司遇到了这样一个为题#xff0c;前端传过来的是一个ListManager,往数据库中保存到时候是String#xff0c;这个String使用谷歌的json转化器。 当查询的时候在将这个数据库中String的数据以ListMana…源码https://gitee.com/cao_wen_bin/test 最近在公司遇到了这样一个为题前端传过来的是一个ListManager,往数据库中保存到时候是String这个String使用谷歌的json转化器。 当查询的时候在将这个数据库中String的数据以ListManager的形式返回给前端。 使用mapstruct中在怎样将String转化为List。在此记录一下。 1.引入依赖 !--mapstruct-- dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct/artifactIdversion1.5.5.Final/version /dependency dependencygroupIdorg.mapstruct/groupIdartifactIdmapstruct-processor/artifactIdversion1.5.5.Final/version /dependency2.PO-DTO package com.cao.pojo;import lombok.Data; import lombok.ToString; import lombok.experimental.Accessors;Data Accessors(chain true) ToString public class Manager {private String name;private String code; }需求是将PO转化为DTO,但是PO中的类型是String,而DTO中的类型是List ManagerPO中的acctManagerList属性是String package com.cao.po;import lombok.Data; import lombok.ToString; import lombok.experimental.Accessors;Data Accessors(chain true) ToString public class ManagerPO {private Long id;private String acctManagerListString; }ManagerDTO中的acctManagerList属性是ListManager package com.cao.dto;import com.cao.pojo.Manager; import lombok.Data; import lombok.ToString; import lombok.experimental.Accessors;import java.util.List; Data Accessors(chain true) ToString public class ManagerDTO {private Long id;private ListManager acctManagerList; }3.编写转换代码 因为我是使用的Gson把ListManager转换为String所以从String转换为ListManager也要用相同的json转换不然会出现异常 import com.cao.dto.ManagerDTO; import com.cao.po.ManagerPO; import com.cao.pojo.Manager; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import org.apache.commons.lang3.StringUtils; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.factory.Mappers;import java.util.List;Mapper public interface ManagerBeanConvert {ManagerBeanConvert INSTANCE Mappers.getMapper(ManagerBeanConvert.class);Mapping(target id, source id)Mapping(target acctManagerList, expression java(MapStruct.strToList(managerPO.getAcctManagerListString())))ManagerDTO po2Dto(ManagerPO managerPO);Mapping(target id, source id)Mapping(target acctManagerListString, expression java(MapStruct.listToStr(managerDTO.getAcctManagerList())))ManagerPO dto2Po(ManagerDTO managerDTO);class MapStruct {/*** po中的String转为dto中的list*/public static ListManager strToList(String acctManagerListString) {if (StringUtils.isNotEmpty(acctManagerListString)) {// 将po中的acctManagerListString用Gson转换成为list(必须和list转String使用相同的转换器)ListManager managerList new Gson().fromJson(acctManagerListString, new TypeTokenListManager() {}.getType());return managerList;}return null;}/*** dto中的list转为po中的String*/public static String listToStr(ListManager managerList) {if (!CollectionUtils.isEmpty(managerList)) {// 将dto中的acctManagerList用Gson转换成为String(必须和String转list使用相同的转换器)String managerListString new Gson().toJson(managerList);return managerListString;}return null;}} }4.测试代码和测试 import com.cao.beanconvert.ManagerBeanConvert; import com.cao.dto.ManagerDTO; import com.cao.po.ManagerPO; import com.cao.pojo.Manager; import com.google.gson.Gson; import lombok.extern.slf4j.Slf4j;import java.util.*; Slf4j public class BeanConvertTest {public static void main(String[] args) {// po中的String转为dto中的listpoString2DtoList();System.out.println();// dto中的list转为po中的StringdtoList2PoString();}private static void dtoList2PoString() {ListManager managerList new ArrayList();managerList.add(new Manager().setCode(0001).setName(管理员1号));managerList.add(new Manager().setCode(0002).setName(管理员2号));ManagerDTO managerDTO new ManagerDTO().setId(3L).setAcctManagerList(managerList);log.info(managerDTO是: {},managerDTO);ManagerPO managerPO ManagerBeanConvert.INSTANCE.dto2Po(managerDTO);log.info(managerDTO转换为managerPO结果是: {},managerPO);}private static void poString2DtoList() {//设置ListManagerListManager managerList new ArrayList();managerList.add(new Manager().setCode(0001).setName(管理员1号));managerList.add(new Manager().setCode(0002).setName(管理员2号));//使用Gson将list转换成StringString managerListString new Gson().toJson(managerList);ManagerPO managerPO new ManagerPO();managerPO.setId(1L).setAcctManagerListString(managerListString);log.info(managerPO是:{},managerPO);ManagerDTO managerDTO ManagerBeanConvert.INSTANCE.po2Dto(managerPO);log.info(managerPO转换为managerDTO结果是: {},managerDTO);} }5.改造 虽然上面的写法已经可以满足需求了但是在ManagerBeanConvert接口中写内部类的话不规范所以要修改。 新建一个专门的用于类型属性的转换的类AttributeConvertUtil将接口中的内部类挪到这个新建的类中并在方法上面加上Named(“别名”) import com.cao.pojo.Manager; import com.google.gson.Gson; import com.google.gson.reflect.TypeToken; import org.apache.commons.lang3.StringUtils; import org.mapstruct.Named; import org.springframework.util.CollectionUtils;import java.util.List;public class AttributeConvertUtil {/*** po中的String转为dto中的list*/Named(strToList)public ListManager strToList(String acctManagerListString) {if (StringUtils.isNotEmpty(acctManagerListString)) {// 将po中的acctManagerListString用Gson转换成为list(必须和list转String使用相同的转换器)ListManager managerList new Gson().fromJson(acctManagerListString, new TypeTokenListManager() {}.getType());return managerList;}return null;}/*** dto中的list转为po中的String*/Named(listToStr)public String listToStr(ListManager managerList) {if (!CollectionUtils.isEmpty(managerList)) {// 将dto中的acctManagerList用Gson转换成为String(必须和String转list使用相同的转换器)String managerListString new Gson().toJson(managerList);return managerListString;}return null;} }修改接口 1.在Mapper上引用我们的自定义转换代码类AttributeConvertUtil 2.使用qualifiedByName指定我们使用的自定义转换方法 import com.cao.dto.ManagerDTO; import com.cao.po.ManagerPO; import org.mapstruct.Mapper; import org.mapstruct.Mapping; import org.mapstruct.factory.Mappers;Mapper(uses AttributeConvertUtil.class) //将自定义类引入进来 public interface ManagerBeanConvert {ManagerBeanConvert INSTANCE Mappers.getMapper(ManagerBeanConvert.class);Mapping(target id, source id)Mapping(target acctManagerList, source acctManagerListString, qualifiedByName strToList)// qualifiedByName的值和别名一样ManagerDTO po2Dto(ManagerPO managerPO);Mapping(target id, source id)Mapping(target acctManagerListString, source acctManagerList, qualifiedByName listToStr) // qualifiedByName的值和别名一样ManagerPO dto2Po(ManagerDTO managerDTO); }源码https://gitee.com/cao_wen_bin/test
http://www.dnsts.com.cn/news/220346.html

相关文章:

  • 类似小红书网站开发费用cn域名做seo
  • 建设网站的网站公司北京小客车指标调控管理信息系统
  • iis7发布网站教程wordpress高级
  • 莱州网站建设营销软件代理推广
  • 中国联通网站备案及ip地址备案管理要求wordpress彩票模板
  • 怎样做网站赚钱做淘宝网站多少钱
  • 如何做机票预订网站久久时间计算网
  • 集团高端网站建设国外html5网站模版
  • 定西市住房和城乡建设局网站建设通手机版
  • 网站建设的规模设想Wordpress全站404
  • 小说网站建设多少钱东莞效果好的网站建设
  • 世界建设企业网站免费做app的网站有吗
  • 新网站百度多久收录百度云群组
  • 网站设计外文文献昆明做网站开发维护的公司
  • 网站页头尺寸优秀网页设计
  • 化妆品网站建设需求问卷调查肉多各种地方做的网站
  • 潍坊高端网站开发惠州网站建设服务商
  • 开发网站需要租服务器建筑工程网络计划电子版
  • vi设计手册范本广州网站优化平台
  • 青海省住房和城乡建设厅官方网站wordpress 移动端跳转
  • 30天网站建设实录教程重庆网站模板建站
  • 做网站换服务器怎么整酒店网站设计的目的和意义
  • 网站备案注销申请表工业设计公司网站如何建设
  • 网站建设信息发布平台wordpress订阅功能
  • 网站建设的安全性chat gpt 国内版
  • 西安哪家公司做的网站好o2o手机网站建设难
  • 莞城注册能源公司网上注册流程seo网站架构
  • 爱途 中山网站制作网页设计规范大全
  • 免费注册网站空间网站公司不给ftp
  • 网站颜色字体颜色南平建设集团有限公司网站