beanUtils的用法

举例1:使用BeanUtils工具封装用户提交的数据。


 1 public static void main(String[] args)throws Exception {
2
3 // 模拟用户的输入的数据如下
4
5 String name = "XML基础";
6
7 String author = "焦宁波";
8
9 String price = "99.99";
10
11 String date = "2013-01-04";
12
13 Book book = new Book();
14
15 // 任务是将以上的属性设置给指定的Book对象
16
17 BeanUtils.setProperty(book, "name", name);
18
19 BeanUtils.setProperty(book, "author", author);
20
21 BeanUtils.setProperty(book, "price",price );
22
23 // 查看属性是否封装好
24
25 System.out.println(book);
26
27 }

发现使用上面的代码可以省略基本数据类型的转型的问题。进而提高代码的开发效率。

举例2:自定义一个类型转换器类。


 1 public static void main(String[] args)throws Exception {
2
3 // 模拟用户的输入的数据如下
4
5 String name = "XML基础";
6
7 String author = "焦宁波";
8
9 String price = "99.99";
10
11 String date = "2013-01-04";
12
13
14
15 Book book = new Book();
16
17
18
19 // 注册一个自己的转换器
20
21 /**
22
23 * converter指定具体的转换器
24
25 * clazz遇到什么类型调用上面的转换器
26
27 */
28
29 ConvertUtils.register(
30
31 new Converter(){
32
33 // 回调方法
34
35 @Override
36
37 public Object convert(Class type, Object value) {
38
39 if(value == null){
40
41 return null;
42
43 }
44
45 // 转换为String
46
47 String data = (String)value;
48
49 // 将指定格式的字符串转换为Date
50
51 SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
52
53 Date date = null;
54
55 try {
56
57 date = format.parse(data);
58
59 return date;
60
61 } catch (ParseException e) {
62
63 e.printStackTrace();
64
65 return null;
66
67 }
68
69 }
70
71 },
72
73 Date.class);
74
75 // 任务是将以上的属性设置给指定的Book对象
76
77 BeanUtils.setProperty(book, "name", name);
78
79 BeanUtils.setProperty(book, "author", author);
80
81 BeanUtils.setProperty(book, "price",price );
82
83 BeanUtils.setProperty(book, "date",date );
84
85 // 查看属性是否封装好
86
87 System.out.println(book);
88
89 }

如果每次遇到一个复杂类型都需要自定义转换器,那样的话实在麻烦。大家看在开发的时候可以先查看该接口是否提供了有效的实现类。

ConvertUtils.register(new DateLocaleConverter(), Date.class);

其实真正的封装好的数据需要存储在数据库中,那么javabean的数据类型应该和数据库的数据类型保持一致,那么在声明持久化javabean的时候需要全部为数据库的基本数据类型。

因此大家在JavaBean中需要导入的是java.sql.Date类,这样就直接可以将日期自动转换了。

举例3:实现封装好的JavaBean对象的属性拷贝。


1 // 实现属性封装数据的一个拷贝
2
3 Book copy = new Book();
4
5 System.out.println(copy);
6
7 PropertyUtils.copyProperties(copy, book);
8
9 System.out.println(copy);

思考:如果使用BeanUtils封装用户的数据,那么也就是一个一个设置啊?岂不是也很麻烦?

其实在真是的环境中我们可以直接获取用户提交的所有的数据信息,只需要进行遍历即可,但是为了方便快速的设置,那么可以将javabean中的属性名和用户提交的数据名保持一致。

时间: 2024-10-21 06:52:01

beanUtils的用法的相关文章

Beanutils基本用法

http://www.blogjava.net/shiwenfeng/archive/2009/12/30/307731.html Beanutils用了魔术般的反射技术,实现了很多夸张有用的功能,都是C/C++时代不敢想的.无论谁的项目,始终一天都会用得上它.我算是后知后觉了,第一回看到它的时候居然错过. 1.属性的动态getter,setter 在这框架满天飞的年代,不能事事都保证执行getter,setter函数了,有时候属性是要需要根据名字动态取得的,就像这样: BeanUtils.ge

(转载)BeanUtils.copyProperties() 用法

BeanUtils.copyProperties() 用法 标签: hibernateuserjdbc数据库strutsjava 2009-10-17 23:04 35498人阅读 评论(6) 收藏 举报  分类: struts1.x(14)  一.简介: BeanUtils提供对Java反射和自省API的包装.其主要目的是利用反射机制对JavaBean的属性进行处理.我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代

spring boot注解,BigDecimal比较,BeanUtils.copyProperties()用法

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 12.0px "Helvetica Neue"; color: #454545 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: justify; font: 12.0px ".PingFang SC"; color: #454545 } span.s1 { font: 12.

BeanUtils.copyProperties() 用法

BeanUtils提供对Java反射和自省API的包装.其主要目的是利用反射机制对JavaBean的属性进行处理.我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度. 如果你有两个具有很多相同属性的JavaBean,一个很常见的情况就是Struts里的PO对象(持久对象)和对应的ActionForm.例如:一个用户注册页面,有一个User实体类和一个UserActionForm,我们一般会在Act

在使用hibernate更新操作时出现org.hibernate.StaleStateException

org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 错误原因: 使用hibernate的saveOrUpdate方法保存实例.saveOrUpdate方法要求ID为null时才执行SAVE, 在其它情况下执行UPDATE.在保存实例的时候是新增,但你的ID不为null,所以使用的是UPDATE,

springboot的小知识总结

1.RestTemplate提交表单数据的三种方法 https://blog.csdn.net/yiifaa/article/details/77939282 2.spring data的分页实现:pageable https://blog.csdn.net/u011781521/article/details/74539330 3.BeanUtils.copyProperties() 用法 https://blog.csdn.net/mr_linjw/article/details/50236

BeanUtils copyProperties 的用法

BeanUtils提供对Java反射和自省API的包装.其主要目的是利用反射机制对JavaBean的属性进行处理.我们知道,一个JavaBean通常包含了大量的属性,很多情况下,对JavaBean的处理导致大量get/set代码堆积,增加了代码长度和阅读代码的难度. 下面通过代码来理解BeanUtils 首先创建两个类 Person.java package com.org; import java.util.Date; public class Person { private String

Beanutils的使用

这是两个javaBean对象 package com.beanutils ; import java.util.*; public class Person { private String name; private String sex; private int age; private Address address; private List goods; private Map contact; public Person() { } public Person(String name

BeanUtils组件

一.为什么使用BeanUtils组件 简化javabean的操作! 二.如何使用javabean组件 引入commons-beanutils-1.8.3.jar核心包 引入日志支持包: commons-logging-1.1.3.jar 三.实例,基本用法 对象使用的拷贝 BeanUtils.copyProperty(admin, "userName", "jack"); BeanUtils.setProperty(admin, "age", 1