`
prodream
  • 浏览: 106136 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

apache-commons-beanutils学习

阅读更多

前言:掌握apache的commons的常用的工具后,你会发现开发起来顺手多了...

 

 

一.框架介绍

 

beanutils主要用来处理java bean 开发包,提供java反射和API自省的包装。

 

 

二.使用场景

 

对表单的处理,jdbc后的数据

 

 

三.运用

 

1.属性值读取,写入

 

  • PropertyUtils.getSimpleProperty(Object bean, String name)
  • PropertyUtils.setSimpleProperty(Object bean, String name, Object value)

  但我更喜欢Ognl...方便.简单,支持复杂的结构(当然beanutils也支持,但没有Ognl方便...)

 

         Ognl.setValue( String expression, Object  root, Object  value)

         Ognl.getValue( String expression, Object root)

 

2. 包装ResultSet 对象--包装jdbc的返回类型对象

  

         ResultSetDynaClass(ResultSet rs).iterator()

         RowSetDynaClass(ResultSet rs).getRows()

 

      大多的时候我们使用RowSetDynaClass,因为使用ResultSetDynaClass的时候,必须保持ResultSet没有close()

    

 

ResultSet rs = stmt.executeQuery ("select account_id, name from customers");
 Iterator rows = (new ResultSetDynaClass(rs)).iterator();
 List rows=(new (RowSetDynaClass(rs)).getRows();

 

3. 将一个bean包装成一个dynabean,便于使用

 

MyBean bean = ...;
    DynaBean wrapper = new WrapDynaBean(bean);
    String firstName = wrapper.get("firstName");

 

dynabean是一种动态的Bean,他的使用非常像Map的操作

 

DynaBean car = new LazyDynaBean();
         car.set("carNo",1);
         car.set("owner","张三");

         out.print(car.get("carNo"));

 

     Lazy  DynaBeans很强大,可以减除非常VO,formBean的带来的麻烦

  • 1. LazyDynaBean - A Lazy DynaBean
  • 2. LazyDynaMap - A light weight DynaBean facade to a Map with lazy map/list processing
  • 3. LazyDynaList - A lazy list for DynaBean's, java.util.Map's or POJO beans.
  • 4. LazyDynaClass - A MutableDynaClass implementation.

4.数据类型转化

 

BeanUtils.populate(bean, map); //将Map中的数据,填入到bean中..强大吧..
ConvertUtils.convert("2010-4-30",Date.class);  //转化为时间类
ConvertUtils.convert("20.02",Double.class);  //转化为double	 

 当然你也可以自己定义转化的方法

 

 ConvertUtils.register(new Converter(){

   @Override
   public Object convert(Class type, Object value) {
    // TODO Auto-generated method stub
      return null;
     }

  }, Date.class);

 

5.对collection集合进行操作

 

  批量更改:

 

// create the closure
    BeanPropertyValueChangeClosure closure =
        new BeanPropertyValueChangeClosure( "activeEmployee", Boolean.TRUE );
 
    // update the Collection
    CollectionUtils.forAllDo( peopleCollection, closure );

  

 

查找/过滤:

 

  

BeanPropertyValueEqualsPredicate predicate =
        new BeanPropertyValueEqualsPredicate( "activeEmployee", Boolean.FALSE );
 
    // filter the Collection
    CollectionUtils.filter( peopleCollection, predicate );

 转化:

 

 

// create the transformer
    BeanToPropertyValueTransformer transformer = new BeanToPropertyValueTransformer( "person.address.city" );
 
    // transform the Collection
    Collection peoplesCities = CollectionUtils.collect( peopleCollection, transformer );
分享到:
评论

相关推荐

    commons-beanutils-1.7.0.jar-解决commons-beanutils和commons-collections重复类

    解决办法是把commons-beanutils中的org/apache/commons/collections删除,这里上传一个改好可以直接使用的。

    org.apache.commons.beanutils.jar

    《Apache Commons BeanUtils详解》 Apache Commons BeanUtils是Apache软件基金会的一个开源项目,它提供了一组实用工具类,用于简化JavaBean对象的操作。这个库的核心是`org.apache.commons.beanutils`包,其中包含...

    commons-beanutils-1.8.3和commons-beanutils-1.8.0

    在给定的压缩包文件中,包含了两个版本的Apache Commons BeanUtils库:`commons-beanutils-1.8.0`和`commons-beanutils-1.8.3`。 Apache Commons BeanUtils的核心功能包括: 1. **属性访问**:BeanUtils提供了一...

    jar包下载 axis mysql-connector-java commons-beanutils commons-logging apache-cxf

    本人曾经花费很多积分在各处下载的jar包,现将所用过得常用jar包打包下载...axis.jar,poi-3.17.jar,mysql-connector-java-5.0.4-bin.jar,java.util学习包,commons-beanutils与commons-logging,apache-cxf-3.2.1 包

    apache-commons-apis

    httpcomponents-client source ,Document( commons-beanutils commons-io commons-fileupload commons-lang,commons-math,commons-validator,commons-dbutils,commons-dbcp,commons-configuration)

    commons-beanutils-1.9.4

    在本文中,我们将深入探讨`commons-beanutils-1.9.4`这个版本,了解其核心功能、使用场景以及如何在项目中集成和应用。 Apache Commons BeanUtils库的主要目标是简化JavaBean对象的属性访问。它通过提供一系列静态...

    apache-commons下源码大放送

    commons-beanutils-1.8.0 commons-codec commons-collections commons-dbcp commons-dbutils commons-fileupload commons-io commons-lang commons-lang3 commons-logging commons-pool commons-validator

    apache-commons的所有API

    Apache Commons 是一个由 Apache 软件基金会维护的开源项目集合,它提供了许多实用的 Java 类库,旨在简化常见的编程任务。...学习和掌握 Apache Commons 中的各个组件,对于提升 Java 开发者的生产力非常有帮助。

    commons-beanutils-1.8.3

    配置服务端所需要的jar文件,包括commons-logging commons-beanutils commons-lang ezmorph json-lib-2.4-jdk15 commons-collections-3.2.1。

    commons-beanutils、commons-collections、commons-collections等常用jar 包下载

    1. **Apache Commons BeanUtils** - `commons-beanutils-1.9.3.jar` Apache Commons BeanUtils库是用于处理JavaBeans的工具类库。它提供了一种简单的方式来操纵JavaBean属性,无需直接调用getter和setter方法。这个...

    apache-commons的jar包

    包括apache-commons的各种jar包及其源码:commons-beanutils-1.8.0,commons-codec-1.4,commons-collections-3.2.1,commons-dbutils-1.3,commons-dbcp-1.4,commons-fileupload-1.2.1,commons-lang-2.5, ...

    apache-commons源文件1,包括src,doc,jar,最新的

    commons-beanutils-1.8.3-bin.zip commons-betwixt-0.8.zip commons-chain-1.2-bin.zip commons-cli-1.2-bin.zip commons-codec-1.7-bin.zip commons-collections-3.2.1-bin.zip commons-compress-1.4.1-bin.zip ...

    org.apache.commons.beanutils.BeanUtils实例

    此为BeanUtils的实例。其中apache的包有一个小的BUG已在其中说明。

    rh-maven35-apache-commons-beanutils-1.9.3-2.3.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    rh-maven35-apache-commons-beanutils-1.9.3-2.2.el7.noarch.rpm

    官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装

    commons-beanutils, Apache Commons Beanutils的镜像.zip

    commons-beanutils, Apache Commons Beanutils的镜像 Apache Commons BeanUtils Apache Commons BeanUtils提供了一个 easy-to-use,但它围绕反射。文档更多信息可以在公共BeanUtils主页上找到。 可以浏览 JavaDoc插

    commons-beanutils-1.9.3jar包source包及相关jar包

    `commons-beanutils-1.9.3-sources.jar`则是源代码包,它包含了BeanUtils库的完整源代码,这对于开发者进行调试、学习和自定义扩展非常有用。通过查看源代码,可以深入理解内部的工作机制,以及如何有效地利用这些...

    apache-commons源码及jar文件

    Apache Commons是一个非常有用的工具包,解决各种实际的通用问题。(附件中提供了该工具包的jar包,及源文件以供研究) BeanUtils Commons-BeanUtils 提供对 Java 反射和自省API的包装 Betwixt Betwixt提供将 ...

    apache commons jar(commons所有的jar包,从官网下载提供给大家)

    apache-sanselan-incubating-0.97-bin bcel-5.2 commons-beanutils-1.9.2-bin commons-chain-1.2-bin commons-cli-1.3.1-bin commons-codec-1.10-bin commons-collections4-4.0-bin commons-configuration-1.10-bin...

Global site tag (gtag.js) - Google Analytics