目录

用途

可以用来对JavaBean的各种增强操作

基本属性的设置

package per.liyue.code.beanutildemo;
import java.util.Date;
public class Person {
private int id = 0;
private String name = null; 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;
}
}
package per.liyue.code.beanutildemo;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
import org.junit.Test;
public class BeanUtilsDemo {
@Test
public void demo1() throws IllegalAccessException, InvocationTargetException {
/*
* 1.对JavaBean的操作
*/
// 基本的对象属性设置
Person p = new Person();
p.setId(1);
p.setName("张三");
System.out.println("原始操作:" + p.getName()); //1.BeanUtils两种方式设置属性
Person pU = new Person();
BeanUtils.copyProperty(pU, "id", 2);
BeanUtils.setProperty(pU, "name", "李四");
System.out.println("使用BeanUtils设置属性:" + pU.getName());
} }

Map数据的拷贝

package per.liyue.code.beanutildemo;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
import org.junit.Test;
public class BeanUtilsDemo {
@Test
public void demo1() throws IllegalAccessException, InvocationTargetException { //2.将Map中的数据拷贝到对象中
Map<String, Object>map = new HashMap<>();
//这里的key要保证和BeanUtils中拷贝的属性名称,类字段名称一致才可以!!
map.put("name", "王五");
Person pM = new Person();
BeanUtils.populate(pM, map);
System.out.println("使用BeanUtils拷贝Map数据:" + pM.getName());
} }

对象的拷贝

package per.liyue.code.beanutildemo;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
import org.junit.Test;
public class BeanUtilsDemo {
@Test
public void demo1() throws IllegalAccessException, InvocationTargetException { //.BeanUtils拷贝对象
Person pC = new Person();
//没有日期类型时候可以
BeanUtils.copyProperties(pC, pU);
System.out.println("使用BeanUtils拷贝对象:" + pC.getName());
} }

转换器

package per.liyue.code.beanutildemo;
import java.util.Date;
public class PersonDate {
private String name = null;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} //日期类型
private Date birthday;
public Date getBirthday() {
return birthday;
}
public void setBirthday(Date birthday) {
this.birthday = birthday;
} @Override
public String toString() {
// TODO Auto-generated method stub
return "这个人名字:" + name + " 生日" + getBirthday();
}
}
package per.liyue.code.beanutildemo;
import java.lang.reflect.InvocationTargetException;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import org.apache.commons.beanutils.BeanUtils;
import org.apache.commons.beanutils.ConvertUtils;
import org.apache.commons.beanutils.locale.converters.DateLocaleConverter;
import org.junit.Test;
public class BeanUtilsDemo { @Test
public void Demo2() throws IllegalAccessException, InvocationTargetException {
/*
* 日期类型转换
*/
PersonDate pD = new PersonDate();
String name = "赵二";
String birthday = "1987-01-01";
//注册类型转换器
ConvertUtils.register(new DateLocaleConverter(), Date.class);
//注册完成后拷贝属性
/*
* 注意:1.必须类的属性是public
* 2.这里对于空字符串是没有处理的,需要自己额外加代码
*/
if ((birthday == null) || ("".equalsIgnoreCase(birthday))) {
return;
}
BeanUtils.copyProperty(pD, "name", name);
BeanUtils.setProperty(pD, "birthday", birthday);
System.out.println(pD); }
}

13.BeanUtils组件-基础.md的更多相关文章

  1. .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

    Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...

  2. java jdbc的优化之BeanUtils组件

    1. BeanUtils组件 1.1 简介 程序中对javabean的操作很频繁, 所以apache提供了一套开源的api,方便对javabean的操作!即BeanUtils组件. BeanUtils ...

  3. 15、Jdbc的优化(BeanUtils组件)

    Jdbc的优化! BeanUtils组件 自定义一个持久层的框架 DbUtils组件 案例优化 1. BeanUtils组件 1.1    简介 程序中对javabean的操作很频繁, 所以apach ...

  4. BeanUtils组件

    引入jar包(需要引入依赖的日志jar包) Person p = new Person(); p.setName("Daisy"); p.setAge(12); //对象的copy ...

  5. 使用BeanUtils组件

    使用BeanUtils组件 前提 1:导入commons-beanutils-1.8.3.jar        //根据  本人使用的是1.8.3的版本 2:导入日志包      //就是loggin ...

  6. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  7. Vue组件基础

    <!DOCTYPE html><html>    <head>        <meta charset="utf-8">      ...

  8. 前端框架之Vue(9)-组件基础&vue-cli

    组件基础 基本示例 这里有一个 Vue 组件的示例: <!DOCTYPE html> <html lang="en"> <head> <m ...

  9. (3.13)mysql基础深入——mysql日志分析工具之mysqlsla【待完善】

    (3.13)mysql基础深入——mysql 日志分析工具之mysqlsla 关键字:Mysql日志分析工具.mysqlsla 常用工具 [1]mysqldumpslow:官方提供的慢查询日志分析工具 ...

随机推荐

  1. 基于pyQt5开发的股价显示器(原创)

    #/usr/bin/env python # -*- coding: utf-8 -*- ''' @author="livermorium116" 为了绕开公司内网而开发的 股票实 ...

  2. python操作符与流程控制

    操作符: 算术运算: +   -   *  /  %  //   ** 逻辑运算:and or  not 身份运算: is     not is 不可变数据类型:数字  字符串  字典key 可变数据 ...

  3. redis参数改进建议

    1.修改stop-writes-on-bgsave-error为no当前配置为yes,分别修改redis.conf和当前实例#redis.confstop-writes-on-bgsave-error ...

  4. jmeter获取token并请求失败Internal authentication failed 400

    jmeter访问token报错400 1.请求token地址 2.运行jmeter报错-run 3.400的意思是: 400(错误请求) 服务器不理解请求的语法. 4.报错信息如下 {"er ...

  5. JVM总结-反射

    反射是 Java 语言中一个相当重要的特性,它允许正在运行的 Java 程序观测,甚至是修改程序的动态行为. 举例来说,我们可以通过 Class 对象枚举该类中的所有方法,我们还可以通过 Method ...

  6. day7--面向对象进阶(内含反射和item系列)

    一面向对象的结构和成员 1.1面向对象的结构 class A: company_name = '老男孩教育' # 静态变量(静态字段) __iphone = '1353333xxxx' # 私有静态变 ...

  7. 用Java实现adb命令的各种方式

    package com.function; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.D ...

  8. python-性能测试

    目录: 1.timeit 1.1 在命令后调用timeit 1.2 在代码中使用 1.3 创建计时器实例,通过autorange获得循环次数 1.4 Wall时间和CPU时间 2.profile和cP ...

  9. [Unity插件]Lua行为树(四):条件节点和行为节点

    条件节点和行为节点,这两种节点本身的设计比较简单,项目中编写行为树节点一般就是扩展这两种节点,而Decorator和Composite节点只需要使用内置的就足够了. 它们的继承关系如下: Condit ...

  10. eclipse 添加svn资源库卡死。长时间等待

    使用https://localhost:8443/svn/xx方式打入浏览器判断其服务器是否正常 如果正常通过,而eclipse新建库卡死时.可以等待一点时间看是否卡 问题依旧,考虑更改地址 主机名 ...