`

apache commons beanutils

    博客分类:
  • java
阅读更多
官网下载jar包
http://commons.apache.org/beanutils/

beanutils对java bean 属性操作

/*
		 * UserBean
		 *  所含属性:(get和set方法必须)
		 *  private String name;
			private int age;
			private Date birth;
			private String[] hob;
			private Address ads;
			private Map school;
			
		 */
		UserBean user = new UserBean();
		user.setAge(22);
		user.setBirth(new Date());
		user.setName("bird");
		//simple 简单属性 get,set
		System.out.println(PropertyUtils.getSimpleProperty(user,"age"));//22
		PropertyUtils.setSimpleProperty(user,"age",23);
		System.out.println(PropertyUtils.getSimpleProperty(user,"age"));//23
		//index 数组属性 get,set
		String[] hob = new String[]{"one","two","three"};
		user.setHob(hob);//必须先具体对象set后才可以下面的方法,也就是setIndex相当于reset
		PropertyUtils.setIndexedProperty(user,"hob[0]","xxx");//第二个参数属性名["+index+"];
		System.out.println(PropertyUtils.getIndexedProperty(user,"hob",0));//xx
		System.out.println(PropertyUtils.getIndexedProperty(user,"hob[1]"));
		//nested 嵌套属性,set,get
		Address ads = new Address();
		ads.setHome("china");
		ads.setPhone("10086");
		PropertyUtils.setNestedProperty(user, "ads",ads);
		System.out.println(((Address)PropertyUtils.getNestedProperty(user, "ads")).getHome());
		//map map属性的set,get
		Map map = new HashMap();
		map.put("little", "");
		user.setSchool(map);//*也需要具体对象初始化
		//第二个参数 属性名("+key+");
		PropertyUtils.setMappedProperty(user,"school(little)","primary school");
		System.out.println(PropertyUtils.getMappedProperty(user, "school(little)"));
		PropertyUtils.setMappedProperty(user, "school", "middle", "middle school");
		System.out.println(PropertyUtils.getMappedProperty(user,"school","middle"));
		
		//combined 组合属性
		PropertyUtils.setMappedProperty(user,"school","high",ads);
		Address sads = (Address) PropertyUtils.getMappedProperty(user, "school", "high");
		System.out.println(sads.getPhone());
		
		//wrap bean
		UserBean user1 = new UserBean();
		user1.setName("bean");
		WrapDynaBean dyna = new WrapDynaBean(user1);
		System.out.println(dyna.get("name")); //bean
		
		//------dyna bean
		
		//定义动态生成的bean所含有的属性
		DynaProperty[] props = new DynaProperty[]{
				new DynaProperty("name",String.class),//(属性名,类型)
				new DynaProperty("birth",java.util.Date.class),
				new DynaProperty("hob",String[].class),
				new DynaProperty("school",java.util.Map.class)
		};
		//生成动态bean的class文件(文件名,父类,默认是BasicDynaClass,所含的属性DynaProperty[])
		BasicDynaClass dynaClass = new BasicDynaClass("MyDynaClass",null,props);
		DynaBean dynaBean = dynaClass.newInstance(); //获取对象实例
		//DynaBean set()和get()轻松对属性操作
		dynaBean.set("name", "dyna");
		dynaBean.set("birth",new Date());
		dynaBean.set("hob", new String[]{"1","2"});
		System.out.println(((String[])dynaBean.get("hob"))[1]);
		
		//数据库操作,ResultSet的工具类
		PreparedStatement pstat = null;
		Connection con = null;
		Class.forName("oracle.jdbc.driver.OracleDriver");

		//con = DriverManager.getConnection("your url", "user","password");
		String sql = "select * from gift_send_info";//查询一个表的数据
		pstat = con.prepareStatement(sql);
		ResultSet rs = pstat.executeQuery();
		
		List list = new ArrayList();
		ResultSetDynaClass rsdc = new ResultSetDynaClass(rs);
		//从ResultSetDynaClass中获取rs中还有的properties,构造一个DynaClass
		BasicDynaClass dynaClass1 = new BasicDynaClass("temp",null,
				rsdc.getDynaProperties());
		//数据copy
		Iterator rows = rsdc.iterator();
		while(rows.hasNext()){
			DynaBean bean = (DynaBean) rows.next();
			DynaBean newBean = dynaClass1.newInstance();
			PropertyUtils.copyProperties(newBean, bean);//把数据copy到新bean中
			list.add(newBean);
			//get()获取两个字段
			System.out.println(bean.get("send_id")+"\t"+bean.get("accept_user"));
		}
		
		rs.close();
		pstat.close();
		
		System.out.println("----------------------");
		for(int i=0;i<list.size();i++){
			DynaBean bean = (DynaBean) list.get(i);
			System.out.println(bean.get("send_address"));
		}
		
		pstat = con.prepareStatement(sql);
		rs = pstat.executeQuery();
		RowSetDynaClass queryRows = new RowSetDynaClass(rs);
		//可以立即关闭数据库链接,查询信息已经存储到queryRows里了
		//上面的就不可以,必须要等到Iterator遍历完后才能关闭
		pstat.close();
		rs.close();
		pstat.close();
		con.close();
		
		List rowDynaBeans = queryRows.getRows();
		for(int i=0;i<rowDynaBeans.size();i++){
			DynaBean bean = (DynaBean) rowDynaBeans.get(i);
			//System.out.println(bean.get("send_address"));
		}
		
		//----------工具类
		//ConvertUtils.convert(value, clazz);//类型转换
		//将一个map[key-value]注入到bean所对应的属性中
		//像struts1的actionForm和struts2的action自动完成属性注入
		//BeanUtils.populate(Object bean, Map properties);
0
0
分享到:
评论

相关推荐

    commons-beanutils:Apache Commons Beanutils

    Apache Commons BeanUtils Apache Commons BeanUtils为反射和自省提供了一个易于使用但灵活的包装器。文献资料可以在上找到更多信息。 可以浏览 。 与Apache Commons BeanUtils的用法有关的问题应张贴到。在哪里可以...

    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.2下载

    Apache Commons BeanUtils是Java开发中的一个实用工具库,它提供了对JavaBeans进行操作的便捷方法。这个库的主要目的是简化对对象属性的访问,使得开发者能够更高效地处理对象的属性设置和获取,而无需手动编写大量...

    org.apache.commons.beanutils.jar

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

    commons-beanutils-1.9.3.jar

    Apache Commons BeanUtils是Java开发中的一个实用工具库,主要用于简化对JavaBean的操作。这个`commons-beanutils-1.9.3.jar`文件是该库的一个版本,它提供了丰富的API来帮助开发者更方便地处理JavaBean对象。在这个...

    commons-beanutils-1.8.3和commons-beanutils-1.8.0

    Apache Commons BeanUtils是Java开发中的一个实用工具库,主要用于处理JavaBeans对象,简化对JavaBean属性的操作。这个库提供了一套方便的API,使得开发者可以通过简单的API调用来获取、设置JavaBean的属性,甚至...

    commons-beanutils-1.9.4

    Apache Commons BeanUtils是Java开发中一个非常重要的工具库,它为开发者提供了大量便捷的JavaBean操作功能。在本文中,我们将深入探讨`commons-beanutils-1.9.4`这个版本,了解其核心功能、使用场景以及如何在项目...

    Commons beanutils API.chm

    Commons beanutils API.chm apache Commons beanutils API

    commons-beanutils-1.9.4.jar.zip

    Apache Commons BeanUtils是Java开发中的一个实用库,它提供了对JavaBeans属性的简便操作。这个库简化了在对象之间复制属性、处理集合以及调用JavaBean方法的过程。在这个"commons-beanutils-1.9.4.jar.zip"压缩包中...

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

    Apache Commons BeanUtils是Java开发中的一个非常重要的工具库,它为开发者提供了便利的方式来操作JavaBeans。这个库的主要目标是简化JavaBean属性的访问,通过提供一套简单易用的API,使得开发者无需直接调用getter...

    commons-beanutils-1.8.3

    《Apache Commons BeanUtils 1.8.3:深入解析与应用》 Apache Commons BeanUtils是Apache软件基金会开发的一个Java库,它提供了一种方便、灵活的方式来操作JavaBeans。在这个特定的压缩包“commons-beanutils-1.8.3...

    commons-beanutils-1.8.3.jar.zip

    《深入解析Apache Commons BeanUtils库》 Apache Commons BeanUtils库是Java开发中广泛使用的工具集,主要用于处理JavaBean对象的属性操作。这个库提供了一系列简便的方法,使得开发者能够轻松地进行对象属性的读取...

    commons-beanutils-1.8.0.rar

    在标题中提到的"commons-beanutils-1.8.0.rar"是一个包含Apache Commons BeanUtils 1.8.0版本的压缩文件,其中主要包含了一个名为"commons-beanutils-1.8.0.jar"的Java档案(JAR)文件。 Apache Commons BeanUtils...

    org.apache.commons工具包

    Apache Commons BeanUtils是Java开发中的一个非常重要的工具包,它属于Apache软件基金会的Commons项目。这个工具包提供了大量方便的API,极大地简化了JavaBean对象之间的属性操作,尤其是在处理复杂的对象模型和数据...

    commons-beanutils-1.8.0的jar包(全).rar

    Apache Commons BeanUtils是Java开发中一个非常重要的工具库,它为开发者提供了大量便捷的bean操作方法,极大地简化了Java对象属性的访问。这个"commons-beanutils-1.8.0的jar包(全).rar"包含了Apache Commons ...

    commons-beanutils-1.9.2和commons.collections-3.2.1

    Apache Commons BeanUtils与Apache Commons Collections是两个非常重要的Java开源库,它们在开发过程中扮演着不可或缺的角色,尤其是在处理对象属性操作和集合操作时。 Apache Commons BeanUtils库是专门为简化...

    commons-beanutils-1.9.3-bin.zip

    《Apache Commons BeanUtils:Java开发中的实用工具库》 Apache Commons BeanUtils是Java开发者常用的工具库之一,尤其在处理对象属性操作时,它提供了一系列强大的功能。标题中的"commons-beanutils-1.9.3-bin.zip...

    commons-beanutils-1.8.0.rar源文件及jar包

    《Apache Commons BeanUtils 1.8.0:深入解析与应用》 Apache Commons BeanUtils是Apache软件基金会开发的一个Java库,它提供了一组方便实用的工具类,用于简化Java Bean对象的操作。在这个“commons-beanutils-...

    commons-beanutils 源码

    《深入解析Apache Commons BeanUtils源码》 Apache Commons BeanUtils是Java开发中广泛使用的工具库,主要用于处理JavaBean对象的属性操作。这个库的核心功能在于简化了JavaBean对象的属性设置、获取以及复制等操作...

    commons-beanutils-1.8.3-bin+logging.rar

    《Apache Commons BeanUtils库详解与应用》 Apache Commons BeanUtils是Java开发中广泛使用的开源工具库,它简化了JavaBean对象的操作,提供了大量的便捷方法,使得开发者能够更加方便地处理属性的读取和设置,以及...

Global site tag (gtag.js) - Google Analytics