BeanUtils 工具類數據的封裝和抽取
一、BeanUtils 工具類使用原因
在簡單用戶登錄案例中,當從瀏覽器接收參數後,還需要創建 JavaBean 類,對其的屬性每一項賦值,如果屬性少,可以手動完成,但是當屬性非常多,這時就發現重複代碼很多,如何簡化代碼量就可以使用封裝 JavaBean 的工具類
來實現。
二、BeanUtils 概述
BeanUtils 是apach提供的一套專門用於將一些數據封裝到java對象中的工具類;
BeanUtils 是 Apache 提供的一個jar 包,使用時需要導入兩個 jar 包。
commons-beanutils-1.8.0jar
commons-logging-1.1-.1.jar
注意:對於封裝的數據必須是標準的 JavaBean 類
JavaBean :標準的Java類
要求:
① 類必須被 public 修飾
② 必須提供空參的構造器
③ 成員變量必須使用 private 修飾
④ 提供公共的 setter 和 getter 方法。
功能:封裝數據。
在使用 BeanUtils 這個工具類,先來了解JavaBean中的成員變量和屬性。
JavaBean的成員變量:就是JavaBean中用private 修飾的變量。
JavaBean的屬性:setter 和 getter 方法截取後的產物。
如: getUsername() --> Username --> username(屬性)
三、BeanUtild使用
使用步驟
1.先獲取到表單的數據 request.getParameterMap();
2.創建要封裝數據的JavaBean User user = new User();
3使用BeanUtils工具類封裝數據 BeanUtils.populate(user, map);
四、BeanUtils 常用方法
1. setProperty() 根據屬性來設置 JavaBean 的屬性值
2. getProperty() 根據屬性來獲取 JavaBean 的屬性值
3. populate(Object obj , Map map):將map集合的鍵值對信息,封裝到對應的JavaBean對象中
測試類之前需有javaBean標準類
public class BeanUtils {
@Test
public void util(){
User user=new User();
try {
//向bean對象的name屬性中保存value值;
org.apache.commons.beanutils.BeanUtils.setProperty(user,"username","root");
System.out.println(user);//User{id=0, username='root', password='null'}
//從bean對象中獲取name屬性的數組類型的值;
org.apache.commons.beanutils.BeanUtils.getProperty(user,"username");
System.out.println(user);//User{id=0, username='root', password='null'}
} catch (IllegalAccessException e) {
e.printStackTrace();
} catch (InvocationTargetException e) {
e.printStackTrace();
} catch (NoSuchMethodException e) {
e.printStackTrace();
}
}
}