- 浏览: 404432 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (99)
- Spring (14)
- Hibernate (2)
- Struts (0)
- Java (21)
- J2ee (1)
- JFreeChart (1)
- Tomcat (3)
- Eclipse (3)
- 项目日记 (2)
- Javascript (4)
- fckeditor (2)
- mysql (13)
- Powerdesigner (2)
- sql server 2005 (1)
- Css (1)
- jQuery (2)
- 架构 (4)
- 性能 (7)
- struts2 (1)
- LigerUI (1)
- ibatis (2)
- 数据库 (1)
- 职业发展 (3)
- maven (1)
- mybatis (1)
- 算法 (1)
- 项目经理 (2)
- hadoop-1.0 (2)
- hadoop1.0 (1)
- hadoop-2.0 (1)
- 网络安全 (5)
- 正则表达式 (1)
- 管理 (2)
- Redis (1)
- linux (4)
- infobright (1)
- CentOS (4)
- windows (1)
- 其他 (1)
- easyui (1)
- elasticsearch (0)
- 公司管理 (0)
最新评论
-
wangyudong:
由Spring Boot实现的微服务需要有比较好的工具去测试R ...
使用Spring Boot快速构建应用 -
masuweng:
<artifactId>maven-compile ...
使用Spring Boot快速构建应用 -
masuweng:
说明下<start-class>com.test. ...
使用Spring Boot快速构建应用 -
masuweng:
学习了,感谢了
使用Spring Boot快速构建应用 -
幽蓝星空:
执行mvn clean install spring-boot ...
使用myeclipse打包Spring Boot工程
import java.beans.PropertyDescriptor; import java.util.Collection; import org.apache.commons.beanutils.PropertyUtils; /** * CopyUtil */ public class CopyUtil { /** * Copy properties of orig to dest * Exception the Entity and Collection Type * @param dest * @param orig * @return the dest bean */ public static Object copyProperties(Object dest, Object orig) { if (dest == null || orig == null ) { return dest; } PropertyDescriptor[] destDesc = PropertyUtils.getPropertyDescriptors(dest); try { for ( int i = 0 ; i < destDesc.length; i ++ ) { Class destType = destDesc[i].getPropertyType(); Class origType = PropertyUtils.getPropertyType(orig, destDesc[i].getName()); if (destType != null && destType.equals(origType) && ! destType.equals(Class. class )) { if ( ! Collection. class .isAssignableFrom(origType)) { try { Object value = PropertyUtils.getProperty(orig, destDesc[i].getName()); PropertyUtils.setProperty(dest, destDesc[i].getName(), value); } catch (Exception ex) { } } } } return dest; } catch (Exception ex) { throw new CopyException(ex); // return dest; } } /** * Copy properties of orig to dest * Exception the Entity and Collection Type * @param dest * @param orig * @param ignores 例如:vo.setUserName copy po.setUserName,应该写UserName * @return the dest bean */ public static Object copyProperties(Object dest, Object orig, String[] ignores) { if (dest == null || orig == null ) { return dest; } PropertyDescriptor[] destDesc = PropertyUtils.getPropertyDescriptors(dest); try { for ( int i = 0 ; i < destDesc.length; i ++ ) { if (contains(ignores, destDesc[i].getName())) { continue ; } Class destType = destDesc[i].getPropertyType(); Class origType = PropertyUtils.getPropertyType(orig, destDesc[i].getName()); if (destType != null && destType.equals(origType) && ! destType.equals(Class. class )) { if ( ! Collection. class .isAssignableFrom(origType)) { Object value = PropertyUtils.getProperty(orig, destDesc[i].getName()); PropertyUtils.setProperty(dest, destDesc[i].getName(), value); } } } return dest; } catch (Exception ex) { throw new CopyException(ex); } } static boolean contains(String[] ignores, String name) { boolean ignored = false ; for ( int j = 0 ; ignores != null && j < ignores.length; j ++ ) { if (ignores[j].equals(name)) { ignored = true ; break ; } } return ignored; } }
public class PO2VO extends TestCase { /* (non-Javadoc) * @see junit.framework.TestCase#setUp() */ protected void setUp() throws Exception { super.setUp(); } public void testPO2VO(){ TUserBasicVO vo = new TUserBasicVO(); TUserBasic po = new TUserBasic(); po.setPwd("111"); po.setUserName("222"); String[] a={"Pwd","UserName"}; try { CopyUtil.copyProperties(vo, po,a); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } System.out.println(vo.getPwd()); } }
评论
1 楼
letmedown
2012-07-24
您好!
我有一个问题.
TUserBasicVO vo = new TUserBasicVO(); //业务层的类TUserBasicVO
TUserBasic po = new TUserBasic(); //Hibernate管理的实体类.
请问:
1:当实体类之间有1:m 或m:n关系时,一个po对象的成员变量是另一个po的集合.
您在转换的时候都是把所有的都转换了吗?
2:如果是彻底地转换,那当VO要持久化时,再把它们完全转成PO是吗?
3:您设计的po 与vo类都是面向接口的吗?
请问您是怎么处理的?
谢谢!!
我有一个问题.
TUserBasicVO vo = new TUserBasicVO(); //业务层的类TUserBasicVO
TUserBasic po = new TUserBasic(); //Hibernate管理的实体类.
请问:
1:当实体类之间有1:m 或m:n关系时,一个po对象的成员变量是另一个po的集合.
您在转换的时候都是把所有的都转换了吗?
2:如果是彻底地转换,那当VO要持久化时,再把它们完全转成PO是吗?
3:您设计的po 与vo类都是面向接口的吗?
请问您是怎么处理的?
谢谢!!
发表评论
-
Apache HttpClient Examples
2015-05-06 15:25 1993String url = "http://www ... -
java使用IO流进行文件的合并
2014-12-16 11:44 2163package chapter8.file; imp ... -
为什么谷歌要执行严格的代码编写规范
2014-09-02 13:51 926本篇是谷歌是如何做代码审查的的续篇。 我们在谷歌所做事情中 ... -
垃圾回收调优及JVM参数详解
2014-07-18 17:52 1739一、常用JVM配置参数 1.1基本参数 -client ... -
为何要在Java中使用内存映射文件(Memory Mapped File)或者MappedByteBuffer
2014-06-06 00:21 3173尽管从JDK 1.4版本开始,Java内存映射文件(Memo ... -
Java 中使用内存映射文件需要考虑的 10 个问题
2014-06-06 00:18 630java中的内存映射IO ... -
Annotation的优缺点-和配置文件比较
2014-05-06 18:22 1303a. 配置(配置文件,con ... -
shell/cmd 获取System.exit(); 返回值
2014-04-29 11:28 3798windows cmd: java ... -
java代码片段
2013-12-20 10:59 826使用NIO进行快速的文件拷贝 public ... -
Java IO流分析整理
2013-12-20 10:19 934ava中的流,可以从不同的角度进行分类。 按照数据流的方向 ... -
Java-UrlRewrite中文官方文档
2013-07-14 18:40 1929安装 1. 下载jar包, 并加入到WEB-INF/ ... -
java的8种排序
2013-03-18 09:58 11398种排序之间的关系: ... -
使用FileReader和FileWriter读取写入文件内容
2012-04-09 11:49 2372java 中的字节流不能直接操作Unicode字符,要想直接操 ... -
System.out.println与System.err.println的区别
2012-04-06 19:49 2660我在学习osworkflow时,同时使用了System.out ... -
Java 泛型集合工具类
2012-03-01 14:12 1519package my.tools; import jav ... -
Java获取IP地址:request.getRemoteAddr()警惕
2009-11-05 17:03 6630项目中需要和第三方平台接口,加了来源IP鉴权功能,测试时发现没 ... -
Integer比较
2009-05-18 16:08 3073例如:两个对象里面都有一个方法为getInteger()的方法 ... -
Java和PHP在Web开发方面的比较
2009-05-01 12:39 2735比较PHP和JSP这两个Web开发技术,在目前的情况是其实是比 ... -
创建J2EE 5.0工程后,JSTL不能使用解决方法
2009-01-06 17:21 5667原因:MyEclipse 创建 j2ee5.0工程的时候把JS ... -
新版JUnit 4.0 抢先体验
2008-04-03 13:51 1284新版JUnit 4.0 抢先体验 ...
相关推荐
"vopo转换工具类及所需jar"是一个特定的项目,它提供了一个简单的方法来处理名为"vopo"的数据格式之间的转换。这个工具包可能包含了一些核心的类和依赖的库,使得开发者能够便捷地实现这种转换操作。 首先,`...
Oracle 自动化生成POJO(Plain Old Java Object)与VO(Value Object)工具,简称POVO工具,是一种提高开发效率的实用程序。在Java开发中,POJO和VO类经常被用于数据传输和持久化层,它们是业务逻辑和数据模型之间的...
值对象(Value Object,简称VO),通常用于业务层之间的数据传递,与PO类似,它也仅包含数据。但是,VO更倾向于抽象出具体的业务对象,可以根据实际业务需求选择是否与数据库表进行对应。在Web开发中,VO经常被用作...
本文将详细介绍VO (View Object)、DTO (Data Transfer Object)、BO (Business Object)、ORM (Object Relational Mapping)、DAO (Data Access Object)、Entity (实体)、DO (Data Object)、PO (Persistent Object)、...
在实体框架或ORM(对象关系映射)工具中,PO对象作为桥梁,将Java对象与数据库记录相互转换,使得开发者能够以面向对象的方式操作数据库数据。 ### 值对象(VO) 值对象(VO)是一种无状态的对象,它代表了一组值...
下面是一个简单的示例代码,演示如何使用反射机制来实现 POJO、DTO、VO 等之间的转换: ```java public class PojoConvertUtil { public static <T> T convertPojo(Object orig, Class<T> targetClass) { try { T...
与PO不同的是,VO并不一定与数据库表一一对应,它可以是根据业务需求抽象出来的对象,可能包含多个表的字段或者排除某些字段。 3. DAO(数据访问对象): DAO是用于处理数据库操作的对象,它是数据层的核心组件。...
ActionFormBean和PO之间的差异在于,ActionFormBean是Web交互的中介,它与HTML表单元素紧密关联,而PO则直接对应数据库记录。在简单应用中,两者可能相似,但在复杂应用中,ActionFormBean只包含与页面交互所需的...
POJO常被用作VO或BO的基础,它们可以轻易地转换为其他类型的对象,如PO或VO,这使得它们成为构建复杂应用的基石。 ### 关系与应用场景 这些概念并非孤立存在,它们之间存在着紧密的联系和相互转化的过程。例如,PO...
VO的作用在于封装业务逻辑所需的数据,它可以是由FormBean转化而来,也可以直接由PO转换得到,但其结构应该符合业务规则,而不是简单地复制Web层或持久层的数据结构。在用户查询信息的例子中,VO可能包含一个全名...
Java代码生成器就是为了解决这个问题而设计的,它可以自动生成PO(Plain Old Java Object)、VO(Value Object)、DAO(Data Access Object)和Service层的Java类。 1. PO(Plain Old Java Object):PO对象通常...
#### 九、VO与PO转换 - **VO(Value Object)与 PO(Persistent Object)**: - 经过Hibernate容量处理后的VO变成了PO,该VO引用将被容器保存并在`session`关闭时`flush`。 - VO与PO之间的相互转换可以使用`...
- **转换**: 使用Apache Commons BeanUtils库进行VO与PO之间的属性复制。 #### 十二、Save操作 - **原理**: 如果对象已与Session关联,则无需再次调用`save`,因为`flush`过程会检测并更新变化的对象。 - **延迟...
// 将 VO 转换为 PO try { tx = session.beginTransaction(); // 开始事务 session.save(po); // 保存实体对象 tx.commit(); // 提交事务 } catch (HibernateException e) { e.printStackTrace(); if ...
5、日期型、数值型变量与Jsp页面交互时需手动转换类型的问题:自动在Form里生成了对应的String变量,用来和Jsp交互。 6、代码可读性问题:代码生成非常规范,注释一应俱全,甚至包括生成时间、开发人员签名等...
- **POJO 转 PO**:持久化过程中,POJO 通常会被转换为 PO,以便于与数据库交互。 - **POJO 转 DTO**:当需要跨层传输数据时,POJO 可能会被转换为 DTO。 - **POJO 转 VO**:当数据需要展示给用户时,POJO 会被转换...
- **POJO (Plain Ordinary Java Object)**:简单的Java对象,可以在不同阶段转化为PO、DTO、VO等。 - **PO (Persistant Object)**:对应数据库实体的持久化对象。 - **VO (View Object)**:用于表示层的对象,...
它能够将面向对象的模型与关系型数据库之间的转换自动化,简化了数据访问层的编程工作。在《Hibernate开发指南》中,作者夏昕详细介绍了如何使用Hibernate进行高效的数据操作,涵盖了从基本概念到高级特性的全面内容...
在项目开发中,业务分层会涉及不同类型的Bean之间需要相互转换,如PO与DTO之间,PO与VO之间等。手动编码setter/getter各个对应属性,会显得臃肿繁琐。通过Mapstruct框架可简单方便地完成这一工作。 如何引入Map...