目录

用途

可以用来对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. 利用WordPress REST API 开发微信小程序从入门到放弃

    自从我发布并开源WordPress版微信小程序以来,很多WordPress网站的站长问有关程序开发的问题,其实在文章:<用微信小程序连接WordPress网站>讲述过一些基本的要点,不过仍 ...

  2. HBase核心知识和应用案例

    Hbase 热点问题? Hbase 预分区 Hbase Rowkey 设计原则 Hbase 常见避免热点问题方法 Hbase 总结 Hbase 连续查询的Rowkey设计 Hbase 随机查询的Row ...

  3. Java 2-Java 对象和类

    Java 对象和类 Java作为一种面向对象语言.支持以下基本概念: 多态 继承 封装 抽象 类 对象 实例 方法 消息解析 本节我们重点研究对象和类的概念. 对象:对象是类的一个实例,有状态和行为. ...

  4. for循环中进行联网请求数据、for循环中进行异步数据操作,数据排序错乱问题解决;

    for循环中进行联网请求数据,由于网络请求是异步的,第一个网络请求还没有回调,第二次第三次以及后续的网络请求又已经发出去了,有可能后续的网络请求会先回调:这时我们接收到的数据的排序就会错乱:怎么才能让 ...

  5. CF603EPastoral Oddities

    /* LCT管子题(说的就是你 水管局长) 首先能得到一个结论, 那就是当且仅当所有联通块都是偶数时存在构造方案 LCT动态加边, 维护最小生成联通块, 用set维护可以删除的边, 假如现在删除后不影 ...

  6. Java8之分组

    数据库中根据多个条件进行分组 ) from tableA group by a, b 现在不使用sql,而直接使用java编写分组,则通过Java8根据多个条件进行分组代码如下: List<Us ...

  7. Java并发编程中的相关注解

    引自:http://www.cnblogs.com/phoebus0501/archive/2011/02/21/1960077.html Java并发编程中,用到了一些专门为并发编程准备的 Anno ...

  8. 【死磕 Spring】—— IoC 之加载 BeanDefinition

    本文主要基于 Spring 5.0.6.RELEASE 摘要: 原创出处 http://cmsblogs.com/?p=2658 「小明哥」,谢谢! 作为「小明哥」的忠实读者,「老艿艿」略作修改,记录 ...

  9. 前端笔记二:DOM事件

    ---恢复内容开始--- ---恢复内容结束---

  10. 文件替换(交互式)Replace

    在增量发版博文里,自动识别目标文件路径是采用了标记目录特征.当部署环境多变时,会多有不便.这个替换程序,在使用时需要手动输入目标目录.当需要进一步自动化时,可以与 fint 配合使用. 程序发布时,需 ...