Java中BeanUtils工具类实现数据的封装

一、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);
    }
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值