beanUtils操作总结

2024-08-20 17:32
文章标签 总结 操作 beanutils

本文主要是介绍beanUtils操作总结,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

//使用beanUtils操作bean的属性(第三方)
public class BeanUtilsDemo {

 @Test
 public void test1() throws IllegalAccessException, InvocationTargetException
 { 
  Person1 p1=new Person1();
  
  //BeanUtils只能操作 public 修饰的class
  BeanUtils.setProperty(p1, "name", "p1name");
  System.out.println(p1.getName());
 }
 @Test
 public void test2() throws IllegalAccessException, InvocationTargetException, NoSuchMethodException
 { 
  String name="aaaa";
  String password="123";
  String age="34";
  String birthday="1990-11-09";
  
  Person1 p1=new Person1();
  
  //仅支持8种基本数据类型转换!!
  BeanUtils.setProperty(p1, "name", name);
  BeanUtils.setProperty(p1, "password", password);
  BeanUtils.setProperty(p1, "age", age);
  
  System.out.println(p1.getName());
  System.out.println(p1.getPassword());
  System.out.println(p1.getAge());
  
  //老张代码    birthday 为复合属性,支持属性的级联操作!! BeanUtils还可以操作Map;
  //BeanUtils.setProperty(p1, "birthday.time", birthday);
  //System.out.println(BeanUtils.getProperty(p1, "birthday"));
  
  
  //为了让日期附到bean的birthday属性上, 我们给beanUtils注册一个日期转换器
  //ConvertUtils.register(converter, clazz);
  ConvertUtils.register(new Converter(){  //匿名内部类
   @Override
   public Object convert(Class type, Object value) {
    
    //使用数据时,先检查后使用!!
    if(value==null)
     return null;
    if(!(value instanceof String))
    {
     throw new ConversionException("只支持String类型转换");
    }
    
    String str=(String) value;
    if(str.trim().equals(""))
     return null;
    
    //SimpleDateFormat 使得可以选择任何用户定义的日期-时间格式的模式
    SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
    try {
     //只能是抓取异常,不能抛出比父类更多的异常;
     return sdf.parse(str);
    } catch (ParseException e) {
     // TODO Auto-generated catch block
     
     //若出现异常,封装数据抛给jvm控制台!!异常连不能掉;
     throw new RuntimeException(e);
    }
   }
  },Date.class);
  
  //使用自定义date 的转换器!!!
  BeanUtils.setProperty(p1, "birthday", birthday);
//  Date date=new Date();
//  System.out.println(date.toLocaleString());
  Date date=p1.getBirthday();  //英文时间格式
  String d=date.toLocaleString();//将转换中文格式!!
  System.out.println("英文格式:"+date+"中文格式:"+d);
 }
 @Test
 public void test3() throws IllegalAccessException, InvocationTargetException
 { 
  String name="aaaa";
  String password="123";
  String age="34";
  String birthday="1990-12-30";
  
  Person1 p1=new Person1();
  
  //仅支持8种基本数据类型转换!!
  BeanUtils.setProperty(p1, "name", name);
  BeanUtils.setProperty(p1, "password", password);
  BeanUtils.setProperty(p1, "age", age);
  
  //beanUtils自身 实现的转换器!! 当时空字符串时会抛异常!!
  //ConvertUtils.register(new DateLocaleConverter(), Date.class);
  
  System.out.println(p1.getName());
  System.out.println(p1.getPassword());
  System.out.println(p1.getAge());
  
  BeanUtils.setProperty(p1, "birthday", birthday);
//  Date date=new Date();
//  System.out.println(date.toLocaleString());
  Date date=p1.getBirthday();  //英文时间格式
  String d=date.toLocaleString();//将转换中文格式!!
  System.out.println("英文格式:"+date+"中文格式:"+d);
 }
 
 @Test
 public void test4() throws IllegalAccessException, InvocationTargetException
 { 
  //客户端以map形式提交数据
  Map map=new HashMap();
  map.put("name", "aaaa");
  map.put("password", "123");
  map.put("age", "23");
  map.put("birthday", "1990-12-30");
  
  ConvertUtils.register(new DateLocaleConverter(), Date.class);
  
  Person1 p1=new Person1();
  //用map集合填充bean的属性!!
  BeanUtils.populate(p1, map);
  
  System.out.println(p1.getName());
  System.out.println(p1.getPassword());
  System.out.println(p1.getAge());
  System.out.println(p1.getBirthday());
 }
 
}

这篇关于beanUtils操作总结的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1090714

相关文章

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W

使用Python的requests库来发送HTTP请求的操作指南

《使用Python的requests库来发送HTTP请求的操作指南》使用Python的requests库发送HTTP请求是非常简单和直观的,requests库提供了丰富的API,可以发送各种类型的HT... 目录前言1. 安装 requests 库2. 发送 GET 请求3. 发送 POST 请求4. 发送

MySQL中查询和展示LONGBLOB类型数据的技巧总结

《MySQL中查询和展示LONGBLOB类型数据的技巧总结》在MySQL中LONGBLOB是一种二进制大对象(BLOB)数据类型,用于存储大量的二进制数据,:本文主要介绍MySQL中查询和展示LO... 目录前言1. 查询 LONGBLOB 数据的大小2. 查询并展示 LONGBLOB 数据2.1 转换为十

Python使用python-pptx自动化操作和生成PPT

《Python使用python-pptx自动化操作和生成PPT》这篇文章主要为大家详细介绍了如何使用python-pptx库实现PPT自动化,并提供实用的代码示例和应用场景,感兴趣的小伙伴可以跟随小编... 目录使用python-pptx操作PPT文档安装python-pptx基础概念创建新的PPT文档查看