13.BeanUtils组件-基础.md
目录
用途
可以用来对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的更多相关文章
- .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍
Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...
- java jdbc的优化之BeanUtils组件
1. BeanUtils组件 1.1 简介 程序中对javabean的操作很频繁, 所以apache提供了一套开源的api,方便对javabean的操作!即BeanUtils组件. BeanUtils ...
- 15、Jdbc的优化(BeanUtils组件)
Jdbc的优化! BeanUtils组件 自定义一个持久层的框架 DbUtils组件 案例优化 1. BeanUtils组件 1.1 简介 程序中对javabean的操作很频繁, 所以apach ...
- BeanUtils组件
引入jar包(需要引入依赖的日志jar包) Person p = new Person(); p.setName("Daisy"); p.setAge(12); //对象的copy ...
- 使用BeanUtils组件
使用BeanUtils组件 前提 1:导入commons-beanutils-1.8.3.jar //根据 本人使用的是1.8.3的版本 2:导入日志包 //就是loggin ...
- Vue组件基础用法
前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...
- Vue组件基础
<!DOCTYPE html><html> <head> <meta charset="utf-8"> ...
- 前端框架之Vue(9)-组件基础&vue-cli
组件基础 基本示例 这里有一个 Vue 组件的示例: <!DOCTYPE html> <html lang="en"> <head> <m ...
- (3.13)mysql基础深入——mysql日志分析工具之mysqlsla【待完善】
(3.13)mysql基础深入——mysql 日志分析工具之mysqlsla 关键字:Mysql日志分析工具.mysqlsla 常用工具 [1]mysqldumpslow:官方提供的慢查询日志分析工具 ...
随机推荐
- 基于pyQt5开发的股价显示器(原创)
#/usr/bin/env python # -*- coding: utf-8 -*- ''' @author="livermorium116" 为了绕开公司内网而开发的 股票实 ...
- python操作符与流程控制
操作符: 算术运算: + - * / % // ** 逻辑运算:and or not 身份运算: is not is 不可变数据类型:数字 字符串 字典key 可变数据 ...
- redis参数改进建议
1.修改stop-writes-on-bgsave-error为no当前配置为yes,分别修改redis.conf和当前实例#redis.confstop-writes-on-bgsave-error ...
- jmeter获取token并请求失败Internal authentication failed 400
jmeter访问token报错400 1.请求token地址 2.运行jmeter报错-run 3.400的意思是: 400(错误请求) 服务器不理解请求的语法. 4.报错信息如下 {"er ...
- JVM总结-反射
反射是 Java 语言中一个相当重要的特性,它允许正在运行的 Java 程序观测,甚至是修改程序的动态行为. 举例来说,我们可以通过 Class 对象枚举该类中的所有方法,我们还可以通过 Method ...
- day7--面向对象进阶(内含反射和item系列)
一面向对象的结构和成员 1.1面向对象的结构 class A: company_name = '老男孩教育' # 静态变量(静态字段) __iphone = '1353333xxxx' # 私有静态变 ...
- 用Java实现adb命令的各种方式
package com.function; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.D ...
- python-性能测试
目录: 1.timeit 1.1 在命令后调用timeit 1.2 在代码中使用 1.3 创建计时器实例,通过autorange获得循环次数 1.4 Wall时间和CPU时间 2.profile和cP ...
- [Unity插件]Lua行为树(四):条件节点和行为节点
条件节点和行为节点,这两种节点本身的设计比较简单,项目中编写行为树节点一般就是扩展这两种节点,而Decorator和Composite节点只需要使用内置的就足够了. 它们的继承关系如下: Condit ...
- eclipse 添加svn资源库卡死。长时间等待
使用https://localhost:8443/svn/xx方式打入浏览器判断其服务器是否正常 如果正常通过,而eclipse新建库卡死时.可以等待一点时间看是否卡 问题依旧,考虑更改地址 主机名 ...