- 浏览: 78494 次
- 性别:
- 来自: 北京
文章分类
最新评论
转换基类:
public abstract class BaseConverter<V, P> { private static Logger logger = LoggerFactory.getLogger(BaseConverter.class); /** * 值对象与域对象之间属性复制 * * @param dto * 值对象 * @param domain * 域对象 * @param flag * 复制方向 */ protected void copyProperties(V dto, P domain, ConverterFlag flag) { switch (flag) { case PO2VO: copySameProperties(dto, domain); copyDiffPropertiesFromPO2VO(dto, domain); break; case VO2PO: copySameProperties(domain, dto); copyDiffPropertiesFromVO2PO(domain, dto); break; default: break; } } /** * 同名属性复制 * * @param target * 目标对象 * @param source * 来源对象 */ protected void copySameProperties(Object target, Object source) { try { RtsBeanUtil.copyProperties(target, source); } catch (IllegalAccessException e) { logger.error("对象属性值复制出错:原数据为{}, 目标数据为{}。", source, target); } catch (InvocationTargetException e) { logger.error("对象属性值复制出错:原数据为{}, 目标数据为{}。", source, target); } } /** * VO非同名属性复制到PO属性 * * @param target * 域对象 * @param source * 值对象 */ public abstract void copyDiffPropertiesFromVO2PO(P target, V source); /** * PO非同名属性复制到VO属性 * * @param target * 值对象 * @param source * 域对象 */ public abstract void copyDiffPropertiesFromPO2VO(V target, P source); }
日期转换工具:
public class DateConverter implements Converter { @SuppressWarnings("rawtypes") @Override public Object convert(Class type, Object value) { if (value == null) { return null; } // 相同类型不需要转换 if (type.equals(value.getClass())) { return value; } // 字符串转日期格式 if (value instanceof String) { return DateUtil.getDateFormatStr(((String) value).trim(), DateUtil.DATA_FORMAT_PATTERN); } // 其他不支持 return null; } }
注册自定义转换机制:
public class CustomerBeanUtil extends BeanUtils { private RtsBeanUtil() { } static { // 注册sql.date的转换器,即允许BeanUtils.copyProperties时的源目标的sql类型的值允许为空 ConvertUtils.register(new SqlDateConverter(), java.util.Date.class); // 注册util.date的转换器,即允许BeanUtils.copyProperties时的源目标的util类型的值允许为空 ConvertUtils.register(new DateConverter(), java.util.Date.class); } public static void copyProperties(Object target, Object source) throws InvocationTargetException, IllegalAccessException { BeanUtils.copyProperties(target, source); } }
转换例子:
public class ParamConverter extends BaseConverter<ParamDTO, ParamInfo> { public ParamDTO getParamDTO(ParamInfo apply) { ParamDTO paramDTO = new ParamDTO(); copyProperties(paramDTO, apply, ConverterFlag.PO2VO); return paramDTO; } public ParamInfo getParamInfo(ParamDTO paramDTO) { ParamInfo apply = new ParamInfo(); copyProperties(paramDTO, apply, ConverterFlag.VO2PO); return apply; } @Override public void copyDiffPropertiesFromVO2PO(ParamInfo target, ParamDTO source) { target.setParamCode(source.getParam().getCode()); target.setParamName(source.getParam().getText()); } @Override public void copyDiffPropertiesFromPO2VO(ParamDTO target, ParamInfo source) { target.setParam(ParamCode.findByCode(source.getParamCode())); } }
至此,VO与PO之间的转换完成,其中主要用的第三份工具 BeanUtil
发表评论
-
MyBatise 例子
2014-12-03 19:28 0param-mapper.xml <?xml ver ... -
删除重复记录的高效SQL
2014-11-07 11:55 387删除重复记录的高效SQL: delete from stud ... -
SQL 优化笔记
2014-11-07 10:36 0产品SQL优化主要从以下 ... -
spring ckeditor and prettify sample
2013-09-06 18:23 1041POM.XML <dependency> ... -
JMX 与Tomcat 集成
2013-08-13 21:31 715set "JAVA_OPTS=%JAVA_OPTS% ... -
maven 配置例子
2013-08-07 13:24 999<?xml version="1.0& ... -
Spring transaction configuration.
2013-07-23 15:01 0Spring transaction configuratio ... -
spring integration summary
2013-07-05 09:35 727<?xml version="1.0" ... -
JDOME 特殊字符过滤
2013-02-27 13:14 668如果是因为这些特殊的控制字符,可以这样替换一下 xmlCon ... -
apache2.0和tomcat的整合
2010-07-02 15:05 821思科技术论坛's Archiver 思科技术论坛 » we ... -
myeclipse 6.0 注册码
2010-06-29 09:16 397myeclipse 6.0 注册码 过期时间2012年 use ...
相关推荐
关于VO、PO的理解——java的(PO,VO,TO,BO,DAO,POJO)解释
简单的vopo转换功能及依赖jar
介绍vo,bo,po的区别。看其他网站收集的资料。
po与vo区别.docpo与vo区别.docpo与vo区别.doc
JAVA 中 的 什 么 是 POJO、VO、PO、DO、DTO 都 是 什 么 ? 他 们 有 什 么 区 别 ?
J2EE基础知识之DTO,VO,PO,DO等定义J2EE基础知识之DTO,VO,PO,DO等定义J2EE基础知识之DTO,VO,PO,DO等定义
J2EE开发人员必须知道 Java Web开发中VO、PO、DTO、POJO代表含义。
自身关联的添加、检索及PO到VO得封装、转换
一款自动生成POVO 的工具,双击即可 运行,默认配置文件:lib/defaultconfig.properties
本人以前搞不懂这些o的区别,特意查找资料总结了一下,希望也可以帮到其他人
Java中 PO VO BO DTO DAO 和 POJO 关系图
NULL 博文链接:https://ewf-momo.iteye.com/blog/1738853
Java的几种对象(PO-VO-DAO-BO-POJO)解释
采用超声合成方法,在较短的时间内合成了VOPO4/苯胺插层复合物,进行了X射线粉末衍射、元素分析、红外...结果表明,在42℃时,0.2g VOPO4·2H2O与8mL苯胺超声30min后,再经乙醇处理15min,所得产物。具有较大的层间距。
以V2O5、H3PO4为原料,在V2O5与H3PO4摩尔比为1:2.4条件下通过水热法制备VOPO4・xH2O,得到的VOPO4・xH2O再通过650°C煅烧制备纳米结构ε-VOPO4,通过X射线衍射对制备材料进行表征。采用SEM对产物形貌进行观察,考察...
如果想生成未预置的代码,如vo对象、前端vue页面以及其他自定义代码等,需要做一些定制和扩展来实现。 从使用角度而言,官方资料介绍得比较简要,要实际使用,仍然需要进行具体的尝试和摸索,包括必要时看下源码...
java(PO,VO,BO,DAO,POJO)Explained Collection 详解
海思3531A_虚拟VO调试