`

反射实体Bean 拷贝实体Bean数据

    博客分类:
  • JAVA
阅读更多
public class MyMethod {

	private static class MethodBean {
		private int MethodId;
		private String MethodName;

		public int getMethodId() {
			return MethodId;
		}

		public void setMethodId(int methodId) {
			MethodId = methodId;
		}

		public String getMethodName() {
			return MethodName;
		}

		public void setMethodName(String methodName) {
			MethodName = methodName;
		}
	}

	protected MethodBean createMethodBean(int id, String name) {
		MethodBean bean = new MethodBean();
		bean.setMethodId(id);
		bean.setMethodName(name);
		return bean;
	}

	/**
	 * copy object1's data to object2
	 */
	protected void CopyBean(Object object1, Object object2)
			throws IntrospectionException, IllegalArgumentException,
			IllegalAccessException, InvocationTargetException {
		BeanInfo beanInfo1 = Introspector.getBeanInfo(object1.getClass());
		BeanInfo beanInfo2 = Introspector.getBeanInfo(object2.getClass());

		//获得 object1 beans PropertyDescriptor
		PropertyDescriptor[] descriptors1 = beanInfo1.getPropertyDescriptors();
		//获得 object2 beans PropertyDescriptor
		PropertyDescriptor[] descriptors2 = beanInfo2.getPropertyDescriptors();

		for (PropertyDescriptor descriptor1 : descriptors1) {
			for (PropertyDescriptor descriptor2 : descriptors2) {
				if (descriptor1.getName().equals(descriptor2.getName())) {
					//获得应该用于读取属性值的方法。
					Method readMethod = descriptor1.getReadMethod();
					//获得应该用于写入属性值的方法。
					Method writeMethod = descriptor2.getWriteMethod();
					if (readMethod == null || writeMethod == null)
						continue;
					//对带有指定参数的指定对象调用由此 Method 对象表示的基础方法。
					Object object = readMethod.invoke(object1);
					writeMethod.invoke(object2, object);
					continue;
				}
			}
		}
	}

	public static void main(String[] args) throws IntrospectionException,
			IllegalArgumentException, IllegalAccessException,
			InvocationTargetException {
		MyMethod myMethod = new MyMethod();

		MethodBean bean_1 = myMethod.createMethodBean(2008, "MyMethod One");
		MethodBean bean_2 = new MethodBean();
		myMethod.CopyBean(bean_1, bean_2);

		System.out.println("object1 id = " + bean_1.getMethodId());
		System.out.println("object1 name = " + bean_1.getMethodName());

		System.out.println("object2 id = " + bean_2.getMethodId());
		System.out.println("object1 name = " + bean_2.getMethodName());
	}
}

打印结果:
          object1 id = 2008
          object1 name = MyMethod One
          object2 id = 2008
          object1 name = MyMethod One
分享到:
评论

相关推荐

    ejb实体bean实例

    EJB实体Bean常用于企业级应用中,如电子商务系统、客户关系管理系统(CRM)等,处理大量数据的增删改查,同时保证数据的一致性和安全性。 ### 六、总结 EJB实体Bean结合Eclipse IDE和MySQL数据库,提供了一种强大...

    Ejb开发实体bean

    实体Bean(Entity Beans)是EJB的一种类型,它代表了业务逻辑中的持久数据,通常对应数据库中的记录。在这个"购物车"案例中,我们将会探讨如何使用EJB来开发一个简单的实体Bean,以及与之交互的Web前端。 1. **EJB...

    实体Bean继承讲解

    实体Bean继承是Java企业级应用开发中的一个重要概念,特别是在使用Java持久化技术(JPA)进行数据存储时。实体Bean代表数据库中的一个表,而实体Bean之间的继承关系则需要在数据库层面进行适当的映射,以便正确地...

    Bean开发实例之三实体Bean开发实例

    - **Bean类**:包含业务逻辑,对于CMP类型的实体Bean来说,Bean类通常是一个实现了`EntityBean`接口的抽象类,其中的方法(如get/set方法)用于操作数据。 - **接口文件**:实体Bean拥有对外接口(远程接口`Remote...

    spring IOC反射装载bean

    在这个特定的"spring IOC反射装载bean"的主题中,我们将深入探讨Spring如何通过XML配置文件来加载和管理Bean,并利用Java的反射机制来实例化这些Bean。 首先,Spring容器通过读取XML配置文件来获取Bean的定义。这些...

    EJB3.0源代码,包含会话Bean,实体Bean,还有消息Bean

    本资源包包含了会话Bean、实体Bean和消息Bean的源代码,这三种类型的Bean是EJB 3.0的核心组成部分。 1. **会话Bean (Session Beans)** - **无状态会话Bean (Stateless Session Beans)**: 提供无持久性状态的业务...

    Jboss下开发ejb应用之一实体bean的应用

    实体Bean代表持久化的业务对象,它们与数据库中的记录相对应,负责存储和检索数据。EJB 3.0引入了注解驱动的开发方式,大大简化了实体Bean的编程模型,使得开发者不再需要编写大量的XML配置文件。 在JBoss应用...

    读取文件数据并解析成bean实体类

    6. **任意文件转任意实体**:实现这一功能可能需要一种灵活的策略,如使用反射机制动态地获取Bean的类信息,并结合文件解析器来填充Bean的属性。同时,需要考虑文件编码、数据格式识别等问题。 7. **配置Class类**...

    ejb实例包括session bean和实体bean

    2. **Container-managed Persistence (CMP)**:容器负责对象与数据库之间的持久化工作,开发者无需直接处理数据库操作,只需定义实体Bean的字段和属性。 3. **Entity Beans 3.0(EJB 3.0引入)**:简化了Entity Bean...

    EJB实体Bean学习

    在EJB中,实体Bean(Entity Bean)是持久化对象的代表,它们负责存储和检索数据库中的数据。在这个“EJB实体Bean学习”主题中,我们将深入探讨实体Bean的两大类型——BMP(Business Managed Persistence)和CMP...

    EJB 3.0学习之实体Bean

    EJB 3.0是Java企业版(Java EE)中的一个重大改进,它极大地简化了企业级Java组件的开发,特别是对于实体Bean的处理。在EJB 3.0之前,实体Bean通常需要实现Home接口、Remote接口或Local接口,这使得编码过程变得复杂...

    7.单表实体Bean

    在Java开发中,单表实体Bean是用于封装数据库中单个表的数据对象,它是Java Persistence API(JPA)或Hibernate等ORM(对象关系映射)框架中的核心概念。本篇文章将深入探讨单表实体Bean的概念、作用以及如何在实际...

    json字符串实体bean或者List互转(gson和jackson,支持泛型)

    json字符串实体bean或者List<bean>互转(gson和jackson,支持泛型),支持json的格式化,所需要的包在代码也有说明。还有少的可以告知我,谢谢

    各种转换,xml,实体bean,动态bean,map等

    Java的反射API(Reflection API)允许程序在运行时检查类的信息,创建和操作动态Bean。另外,Spring框架的Prototype bean定义也可以实现类似的功能,允许每次请求时创建一个新的bean实例。 4. **Map**: Map是Java...

    实体Bean之间的级联关系

    实体Bean之间的级联关系是Java持久化框架如Hibernate或JPA中的一个重要概念,它涉及到对象关系映射(ORM)中的数据操作同步性。在数据库中,实体Bean通常代表表中的行,而实体间的级联关系则反映了表之间的关联。...

    EJB实体Bean与事物管理

    在EJB规范中,实体Bean(Entity Bean)是一种特殊类型的组件,用于持久化数据到数据库,模拟业务对象。事务管理则是EJB中的重要组成部分,确保了业务操作的一致性和可靠性。 1. **EJB实体Bean** - **定义**: EJB...

    java反射以及复制一个bean的值到另一个bean中。

    Java没有内置的深拷贝机制,但可以通过反射实现。假设我们有两个 `Person` 类的实例 `person1` 和 `person2`,我们想要将 `person1` 的属性值复制到 `person2`: ```java public static void copyBeanProperties...

    JPA 批注参考 EJB3.0实体Bean注解详细解析

    在 JPA 出现之前,Java EE 应用程序通常使用容器管理的实体 Bean 来处理数据持久化。这种模型虽然有效,但配置繁琐且不够灵活。JPA 的引入极大地简化了这一过程。 使用 JPA,开发人员可以将任何普通的旧式 Java ...

    根据读取数据库自动生成实体bean

    在Java开发中,数据库实体Bean是数据访问层与业务逻辑层之间的重要桥梁,它们通常用于映射数据库表中的记录。自动生成这些实体Bean可以极大地提高开发效率,减少手动编码的工作量。"根据读取数据库自动生成实体bean...

    10_开发单表映射的实体bean

    在Java EE应用开发中,实体Bean(Entity Bean)是一种核心组件,用于表示数据库中的数据对象。这个主题“10_开发单表映射的实体bean”聚焦于如何将数据库单表的数据映射到Java对象,以便在应用程序中进行操作。在本...

Global site tag (gtag.js) - Google Analytics