一、BeanUtils工具类
1.介绍
BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。可以将一个表单提交的所有数据封装到JavaBean中。
2.导入依赖/jar包
<dependency>
<groupId>commons-beanutils</groupId>
<artifactId>commons-beanutils</artifactId>
<version>1.8.3</version>
</dependency>
3.常用API
方法 | 描述 |
---|---|
populate(Object bean, Map properties) | 将Map中的数据封装到指定的JavaBean中,一般用于将表单的所有数据封装到JavaBean中 |
setProperty(Object obj,String name,Object value) | 设置属性值 |
getProperty(Object obj,String name) | 获得属性值 |
4.使用测试
package cn.xuguowen.BeanUtilsTest;
import cn.xuguowen.pojo.Course;
import org.apache.commons.beanutils.BeanUtils;
import org.junit.Test;
import java.lang.reflect.InvocationTargetException;
import java.util.HashMap;
/**
* @author 徐国文
* @create 2021-09-15 14:17
* 测试BeanUtils工具类
* BeanUtils 是 Apache commons组件的成员之一,主要用于简化JavaBean封装数据的操作。
* 可以将一个表单提交的所有数据封装到JavaBean中
* 一般来说:如果servlet获取表单的参数是存储在map集合中,就可以用BeanUtils工具类,
* 将map集合中存储的表单参数封装到javabean中
*/
public class TestBeanUtils {
@Test
public void testBeanUtils() throws InvocationTargetException, IllegalAccessException, NoSuchMethodException {
// 1.创建course对象
Course course = new Course();
// 2.创建map集合,在map集合中存储数据
HashMap<String, Object> map = new HashMap<>();
// 需要注意的是:map中存储的key要和course实体对象中的属性名相同,否则封装不上
// map中存储的value要符和course实体对象中属性的数据类型
map.put("id",1);
map.put("course_name","GO语言");
map.put("brief","冲刺BAT大厂");
map.put("teacher_name","徐星驰");
map.put("teacher_info","非著名演员");
// 这里无法将 "非著名演员" 封装到course实体对象中的属性上
// 因为实体对象中没有info这个属性,只有teacher_info 这个属性
// 3.使用beanutils工具类进行封装数据
BeanUtils.populate(course,map);
// 4.查看是否封装上数据
System.out.println(course.getId() + " " + course.getCourse_name() + " "
+ course.getBrief() + " " + course.getTeacher_name() + " " + course.getTeacher_info());
BeanUtils.setProperty(course,"price",100.0);
String price = BeanUtils.getProperty(course, "price");
System.out.println(price);
}
}