Java类库BeanUtils组件使用方法及实例详解

2020-02-20 20:00:49王振洲

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)
}