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

淘宝联盟的网站管理怎么做金华网站建设行业

淘宝联盟的网站管理怎么做,金华网站建设行业,民治做网站的公司,郑州网球公开赛源码#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.hkea.cn/news/14292163/

相关文章:

  • 农业建设信息网站做文案策划需要看什么网站
  • 手机网站seo免费软件爱情树表白网页在线制作
  • 南通模板建站多少钱求个网站急急急
  • 门户网站视频摄影网站制作设计
  • 网站的二级页面怎么做潍坊滨海开发区建设局网站
  • 网站备案前置审批文件做微商有什么好的货源网站
  • 简洁的网站设计互联网营销方式
  • 加强网站技术建设什么网站可以做设计赚钱吗
  • 网站布局怎么用dw做网站注册费计入什么科目
  • 重庆做网站价格一站式网站开发
  • 海淀网站建设本溪品牌网站建是啥
  • 做网站自己申请域名还是对方大流量网站 文章点击
  • 免费学平面设计的网站一站式网站手机端怎么做
  • 网站开发要学哪些设计师图片素材
  • 邯郸网站建设优化排名开封美食网站建设规划
  • 搜索引擎作弊网站有哪些海外seo投放
  • 网站开发学习淮南新浪网络推广公司
  • 昆明市住房和城乡建设局门户网站网站建设用什么书
  • 差异基因做聚类分析网站研发项目备案在哪个网站做
  • 学校网站在哪里找百度一下浏览器
  • 电子商务实验网站建设实训过程平台手机app开发
  • 天都城网站建设wordpress rpc
  • 网站开发的步骤wordpress精品主题
  • php下载站源码外贸建设网站公司
  • 成都网站建设制作公司河南高端网站高端网站建设
  • 英文网站推广公司wordpress关键词屏蔽
  • 上海虹口建设局官方网站装修免费出效果图
  • 达州市建设局网站盛世阳光-网站建设
  • 公司做网站的费用入账网页界面设计的尺寸
  • 新乡公司网站建设敦煌网网站评价