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:官方提供的慢查询日志分析工具 ...
随机推荐
- 移动端动态font-size
/** * Created by shimin on 2017/8/18. *///计算dpr!function(win, lib) { var timer, doc = win.document, ...
- GIT命令行笔记
一次常规的初始化+推送: git initgit config user.email "you@example.com"git config user.name "asm ...
- 电商系统架构总结4(webapi 版本控制)
为了 顺利迭代升级,web api 在维护过程是不断升级的,但用户是不能强迫他们每次都跟随你去升级,这样会让用户不胜其烦.为了保证不同版本的客户端能同时兼容,在web api接口上加入版本控制就很有必 ...
- 《linux性能及调优指南》 3.5 网络瓶颈
3.5 Network bottlenecks A performance problem in the network subsystem can be the cause of many prob ...
- [SQL Server]无法创建 SSIS 运行时对象,请验证 DTS.dll 是否可用及是否已注册
很大可能是SQL Server Management Studio(SSMS)版本与当前操作系统不兼容造成的,与数据库本身没有关系,这种情况基本无解,不过可以使用其他机器连本机数据库导入导出数据. 今 ...
- JQuery字符串的操作
一.String对象属性 1.length属性: length算是字符串中非常常用的一个属性了,它的功能是获取字符串的长度.当然需要注意的是js中的中文每个汉字也只代表一个字符,这里可能跟其他语言有些 ...
- linux下部署jdk+Tomcat
部署jdk (如果是普通用户,先切换到管理员 su root) 1.下载jdk压缩包 2.用xftp将jdk压缩包传输 /opt 目录下 3.解压(在/opt 目录下对压缩包解压) tar -xzvf ...
- js数据类型 --运算符
基本数据类型: number: var a=1; string: var str='123'; boolean: var b1=false; null:var c1=null; //打印结果为 obj ...
- [Unity插件]Lua行为树(三):组合节点Sequence
Sequence的继承关系如下: Sequence->Composite->ParentTask->Task 上一篇已经实现了简单版本的ParentTask和Task(基于Behav ...
- 8.Appium的基本使用-2(安装node.js)
node.js 下载地址:https://nodejs.org/en/download/下载 64-bit 下载包下载完成双击安装: