目录

用途

可以用来对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. C++连接mysql及遇到的相关问题

    最近接触了很多数据库的东西,本来是一直接触的是sql server,不过由于项目需要就开始对mysql进行了连接.下面就让我这个菜鸟浅谈下经验吧. 对于C++连接mysql,我不太喜欢多下载一个软件m ...

  2. c语言数据类型(一)

    (强数据类型) 1.常量 常量是程序中不可变的量 10为常量 两种常量 #define 定义宏常量 const #对于#define 类型的常量,c语言的习惯是常量名称大写, 对于普通const常量以 ...

  3. kafka的几个简单操作

    怎么安装解压kafka这里就不多说了,从配置文件说起 我这里搭建的是三节点集群 master  slave1 slave2 修改server.properties 文件 把自己本地安装的zookeep ...

  4. tomcat7.0安装笔记

    1. 解压,新增系统环境变量CATALINA_HOME,值为tomcat所在目录,如E: tomcat7.0 PS:安装JAVA时没有配置系统变量JAVA_HOME,导致报错无法启动tomcat,新建 ...

  5. 使用Inent 携带 Bundle 携带 数组 传递给另外一个activity

    在activity发送数组: public static String [] PhoneAndTime = new String[2]; //new 新的Intent Intent data = ne ...

  6. super的使用方法与使用范围

    如果你了解,用this是调用一个类里面的变量或者对象方法.那么super你可以理解为调用多态或者继承类中的构造方法和对象方法.在super调用构造方法时,只能调用带参的构造方法,这也是唯一调用其他类里 ...

  7. java 日期排序。。。。

    Collections.sort(list, new Comparator<Map<Object, Object>>() { public int compare(Map< ...

  8. 代码: js: 数值操作

    数值转换: 将 32000 这样的数字,转换为“3.2万” //将32000 这样的数字,转换为 “3.2万” var price = parseInt('31999'); var price2 = ...

  9. 12. ajax、datagrid请求传参实例

    ############实例1:############ var data = {};data.orgRoleCode = orgRoleCode;data.orgRoleName = orgRole ...

  10. zabbix模块注意

    1,每个监控组使用一个模版,对模版操作时会对监控组的每个模版进行修改操作.