您的位置:首页 > 编程语言 > Java开发

使用BeanUtils进行一些简单的操作

2016-06-19 23:23 507 查看
BeanUtils是个工具包,Apache公司所开发的开源工具包,良心企业重要是。代码中对javabean的操作很频繁, 所以Apache提供了一套开源的api,方便对javabean的操作!这个就是BeanUtils组件。

BeanUtils组件, 作用是简化javabean的操作!

用户可以从www.apache.org下载BeanUtils组件,然后再在项目中引入jar文件!

使用BeanUtils工具包我们需要引用的的Jar包有以下几种:

(1) BeanUtils相关包,主要是工具包

commons-beanutils-1.8.3.jar 我们要使用的包

commons-beanutils-1.8.3-javadoc.jar 文档包

commons-beanutils-bean-collections-1.8.3.jar 我也不知道什么包

commons-beanutils-core-1.8.3.jar 核心包

(2) Logic4j相关包,这是个日志包

commons-logging.jar

log4j.jar

下面就要开始使用这个工具包了

Admin类

public class Admin {
private int id;
private String name;
private String age;
private Date birthday;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
}

}


下面是开始使用BeanUtil进行简化操作:

beanutils拷贝对象属性

public void test() throws Exception {
//实现原理就是反射,对于基本数据类型会自动转换
Admin admin=new Admin();      //实例化一个对象
BeanUtils.copyProperty(admin, "name", "suny");    //拷贝name属性   三个参数是(对象,属性名,属性值)
BeanUtils.copyProperty(admin,"age",18);        //拷贝age属性
BeanUtils.setProperty(admin,"id",1);           //设置属性值
System.out.println(admin.getName());
System.out.println(admin.getAge());
System.out.println(admin.getId());
}


对象的拷贝

public void test2() throws Exception
{
Admin admin=new Admin();    //创建对象1
Admin admin2=new Admin();    //创建对象1
BeanUtils.copyProperty(admin,"name","suny");      //拷贝name属性
BeanUtils.copyProperties(admin2,admin);      //把admin对象拷贝到aamin2对象中     (现在的对象,源对象)
System.out.println(admin2.getName());
}


map对象拷贝到对象中

public void test3() throws Exception
{
Admin admin=new Admin();       //实例化一对象
Map<String,Object> map=new HashMap<String,Object>();     //创建一个map对象集合
map.put("name", "Suny");    //推送map属性与值    ,map中的key一定要与javabean中的属性一样
map.put("age", 19);        //推送map属性与值
BeanUtils.populate(admin, map);       //把map对象拷贝到admin对象中
System.out.println(admin.getName());
System.out.println(admin.getAge());

}


模拟表单提交时的操作

public void test4() throws Exception{
String rec_name="suny";     //模拟从表单接受的name值
String rec_age="20";        //模拟从表单接收得 age值
Admin admin=new Admin();     //实例化对象
BeanUtils.copyProperty(admin, "name", rec_name);      //请注意最后的name时候从表
4000
单接收的值
BeanUtils.copyProperty(admin, "age", rec_age);         //这个age也是接收的值
System.out.println(admin.getName());
System.out.println(admin.getAge());

}


忘记说使用方法了,使用BenUtils组件的话要先导入包:

引入commons-beanutils-1.8.3.jar核心包

引入日志支持包: commons-logging-1.1.3.jar

如果缺少日志jar文件,就会报错报错:

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.commons.beanutils.ConvertUtilsBean.<init>(ConvertUtilsBean.java:157)
at org.apache.commons.beanutils.BeanUtilsBean.<init>(BeanUtilsBean.java:117)
at org.apache.commons.beanutils.BeanUtilsBean$1.initialValue(BeanUtilsBean.java:68)
at
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息