BeanUtils.copyProperties() 用法

标签: hibernateuserjdbc数据库strutsjava
2009-10-17 23:04 35498人阅读 评论(6) 收藏 举报

 分类:
struts1.x(14) 

一、简介:

BeanUtils提供对Java反射和自省API的包装。其主要目的是利用反射机制对JavaBean的属性进行处理。我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度。

二、用法:

如果你有两个具有很多相同属性的JavaBean,一个很常见的情况就是Struts里的PO对象(持久对象)和对应的ActionForm。例如:一个用户注册页面,有一个User实体类和一个UserActionForm,我们一般会在Action里从ActionForm构造一个PO对象,传统的方式是使用类似下面的语句对属性逐个赋值:

Java代码 
  1. // 获取 ActionForm 表单数据
  2. UserActionForm uForm = (UserActionForm) form;
  3. // 构造一个User对象
  4. User user = new User();
  5. // 逐一赋值
  6. user.setUsername(uForm.getUsername);
  7. user.setPassword(uForm.getPassword);
  8. user.setAge(uForm.getAge);
  9. ...........
  10. ...........
  11. // 然后调用JDBC、或操作Hibernate 持久化对象User到数据库
  12. ...
[java] view plaincopy
  1. <span style="font-size: large;">// 获取 ActionForm 表单数据
  2. UserActionForm uForm = (UserActionForm) form;
  3. // 构造一个User对象
  4. User user = new User();
  5. // 逐一赋值
  6. user.setUsername(uForm.getUsername);
  7. user.setPassword(uForm.getPassword);
  8. user.setAge(uForm.getAge);
  9. ...........
  10. ...........
  11. // 然后调用JDBC、或操作Hibernate 持久化对象User到数据库
  12. ...
  13. </span>

通过这样的方法如果表单数据N多、100、1000(夸张点。哈哈)、、、、那我们不是要写100、、、1000行set、get了。谁都不愿意这样做。

而我们使用 BeanUtils.copyProperties() 方法以后,代码量大大的减少,而且整体程序看着也简洁明朗,代码如下:

Java代码 
  1. // 获取 ActionForm 表单数据
  2. UserActionForm uForm = (UserActionForm) form;
  3. // 构造一个User对象
  4. User user = new User();
  5. // 赋值
  6. BeanUtils.copyProperties(user, uForm);
  7. // 然后调用JDBC、或操作Hibernate 持久化对象User到数据库
  8. .......
[java] view plaincopy
  1. <span style="font-size: large;">// 获取 ActionForm 表单数据
  2. UserActionForm uForm = (UserActionForm) form;
  3. // 构造一个User对象
  4. User user = new User();
  5. // 赋值
  6. BeanUtils.copyProperties(user, uForm);
  7. // 然后调用JDBC、或操作Hibernate 持久化对象User到数据库
  8. .......
  9. </span>

很方便是吧。

注:如果User和UserActionForm 间存在名称不相同的属性,则BeanUtils不对这些属性进行处理,需要手动处理。例如:

User类里面有个createDate 创建时间字段,而UserActionForm里面无此字段。BeanUtils.copyProperties()不会对此字段做任何处理。必须要自己手动处理。

本文来自:http://starzhang.javaeye.com/blog/361954

转载于:https://www.cnblogs.com/liupengfei005257/p/7447189.html

(转载)BeanUtils.copyProperties() 用法相关推荐

  1. BeanUtils.copyProperties() 用法

    转载自 https://blog.csdn.net/jdjdndhj/article/details/62056137 第一步: BeanUtils.copyProperties()与Property ...

  2. BeanUtils.copyProperties与PropertyUtils.copyProperties用法及区别

    转自:http://www.cnblogs.com/fayf/articles/1272982.html 一.简介:BeanUtils提供对Java反射和自省API的包装.其主要目的是利用反射机制对J ...

  3. BeanUtils.copyProperties的用法

    前言 org.springframework.beans.BeanUtils,它提供了对java反射和自省API的包装.它里面还有很多工具类,这里我们介绍一下copyProperties. 我们如果有 ...

  4. 关于BeanUtils.copyProperties的用法和优缺点

    一.简介:  BeanUtils提供对Java反射和自省API的包装.其主要目的是利用反射机制对JavaBean的属性进行处理.我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对Jav ...

  5. BeanUtils.copyProperties VS PropertyUtils.copyProperties

    1. 通过反射将一个对象的值赋值个另外一个对象(前提是对象中属性的名字相同). 2. BeanUtils.copyProperties(obj1,obj2); 经常闹混不知道是谁给谁赋值,无意中先到& ...

  6. BeanUtils.copyProperties

    BeanUtils.copyProperties("转换后的类", "要转换的类"); 转载于:https://www.cnblogs.com/lqtbk/p/ ...

  7. BeanUtils.copyProperties使用

    BeanUtils提供对Java反射和自省API的包装.其主要目的是利用反射机制对JavaBean的属性进行处理.我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处 ...

  8. spring BeanUtils.copyProperties只拷贝不为null的属性

    在MVC的开发模式中经常需要将model与pojo的数据绑定,apache和spring的工具包中都有BeanUtils,使用其中的copyProperties方法可以非常方便的进行这些工作,但在实际 ...

  9. 使用BeanUtils.copyProperties进行对象之间的属性赋值

    1.使用org.springframework.beans.BeanUtils.copyProperties方法进行对象之间属性的赋值,避免通过get.set方法一个一个属性的赋值 /*** 对象属性 ...

最新文章

  1. PHP文件打包类和实例
  2. 项目中使用CLR编程
  3. django ajax 简书,Django_ajax
  4. 串口通讯编程一日通1(整合资料) .
  5. 京东技术全景图首次展示 四大重磅智能技术驱动产业未来
  6. 2021年95后“他经济”研究报告
  7. synchronized猎奇
  8. textarea的maxlength属性兼容解决方案
  9. iso硬盘安装 凤凰os_凤凰os系统下载_凤凰系统phoenix os官方下载-188软件园
  10. 你们心心念念的 GitHub 客户端终于来了!
  11. 【JAVA】java代码实现print2Flash转swf文件,百度文库一样。
  12. 同济版《线性代数》再遭口诛笔伐,网友:它真的不太行...
  13. 高级UI-滤镜和颜色通道
  14. 苹果电脑表格取消自动计算机,苹果电脑excel序列被隐藏怎么办
  15. 键盘侠小心了!微博或将推出“杠精”示众功能
  16. android平板怎么快速截屏,平板怎样截图(iPad截屏的3种方式)
  17. 植物研究最新进展(2021年11月)
  18. dell服务器系统备份软件,使用 AlienRespawn 备份 Alienware 电脑的系统
  19. 计算机桌面来回闪烁,电脑进去桌面就一直闪
  20. 在php中phr是什么意思,phr. 相当多的_____

热门文章

  1. 解决wget下载中文乱码的方法
  2. oracle 追踪特定sql语句
  3. DB2 V8,V9并存在同一 server 的处理
  4. [转]计算机存储 cache介绍
  5. 当try、catch中有return时,finally中的代码会执行么?
  6. python编写登录接口与三级菜单小程序
  7. GitHub教程学习笔记3---分支管理
  8. HTML代码编写规范
  9. Molecule – 帮助你构建跨平台的 HTML5 游戏
  10. C# 开发和使用中的33个技巧