BeanUtils
BeanUtils是Apache commens组件里面的成员,由Apache提供的一套开源api,用于简化对javaBean的操作,能够对基本类型自动转换。
JavaBean
BeanUtils组件是用于简化javaBean的操作,那么什么是javaBean呢?简单来说,javaBean实质就是java类,只不过是遵循了某种规范的java类。
javaBean的特点:
必须具有一个无参的构造方法 属性必须私有化 私有化的属性必须通过public类型的方法来暴露,也就是说要出现setXXX()、getXXX()或者isXXX()的方法下载BeanUtils
http://commons.apache.org/proper/commons-beanutils/download_beanutils.cgi,下载好组件,再到项目里面引入jar文件。
导入核心包
commons-beanutils-1.9.3.jar commons-logging-1.2.jar注意:当缺少日志jar包,会出现如下的报错情况。
java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
logging组件的下载地址:http://commons.apache.org/proper/commons-logging/download_logging.cgi
javaBean实例
public class Student {
private String name;
private String id;
private int age;
private String sex;
private Date d;
public Student() {
super();
}
public Date getD() {
return d;
}
public void setD(Date d) {
this.d = d;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Student [name=" + name + ", id=" + id + ", age=" + age
+ ", sex=" + sex + ", d=" + d + "]";
}
}
BeanUtils用法
对象的拷贝,BeanUtils.copyProperties(Object dest,Object orig) 对象属性的拷贝,BeanUtils.copyProperties(Object bean,String name,Object value)或者BeanUtils.setProperty(Object bean,String name,Object value) map数据封装到Javabean,populate(Object bean, Map<String,? extends Object> properties)实例
对象的拷贝
@Test
public void test() throws Exception {
//创建对象
Student s=new Student();
/**
* 组件对JavaBean的操作
* bean:javaBean对象
* name:对象的属性名称
* value:对象的属性值
*/
//1.实现对象的属性拷贝, 对于基本数据类型,会自动进行类型转换
BeanUtils.copyProperty(s, "id","2018100712");
//2.实现对象之间的拷贝:Object dest<---Object orig
Student s2=new Student();
BeanUtils.copyProperties(s2, s);
System.out.println(s2);
}
对象属性的拷贝
@Test
public void test() throws Exception {
//创建对象
Student s=new Student();
/*一般的操作
s.setId("1221212");
s.setName("老王");
System.out.println(s);
*/
//1.实现对象的属性拷贝, 对于基本数据类型,会自动进行类型转换
BeanUtils.copyProperty(s, "id","2018100712");
System.out.println(s)
}










