`
rq2_79
  • 浏览: 240517 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Bean生成方法类

    博客分类:
  • java
阅读更多
java 代码
 
  1. import java.beans.BeanInfo;  
  2. import java.beans.IntrospectionException;  
  3. import java.beans.Introspector;  
  4. import java.beans.PropertyDescriptor;  
  5. import java.lang.reflect.Method;  
  6. import java.util.Date;  
  7. import java.util.HashMap;  
  8. import java.util.Map;  
  9.   
  10. import org.apache.log4j.Logger;  
  11.   
  12. import com.hintsoft.chain.adminmng.vo.Loguser;  
  13.   
  14. /** 
  15.  *  
  16.  * Bean生成方法类 
  17.  *  
  18.  * @author rq2. 
  19.  * @version 1.0.0, 2007-09-14 
  20.  * @see 
  21.  * @since 
  22.  *  
  23.  */  
  24. public class BeanClass {  
  25.   
  26.     private static Logger logger = Logger  
  27.             .getLogger("BeanClass");  
  28.   
  29.     /** 
  30.      * Map转换成Bean 
  31.      *  
  32.      * @param formName 
  33.      *            bean的文件名称 
  34.      * @param map 
  35.      * @return 
  36.      */  
  37.     public static Object map2class(String formName, Map map) {  
  38.         Object bean = null;  
  39.         try {  
  40.             Class classType = Class.forName(formName);  
  41.             bean = classType.newInstance();  
  42.             PropertyDescriptor props[] = propertyDescriptors(classType);  
  43.             for (int i = 0; i < props.length; i++) {  
  44.                 Object object = map.get(props[i].getName());  
  45.                 if (object != null) {  
  46.                     Method setter = props[i].getWriteMethod();  
  47.                     object = processType(object, props[i].getPropertyType());  
  48.                     setter.invoke(bean, new Object[] { object });  
  49.                 }  
  50.             }  
  51.         } catch (Exception e) {  
  52.             logger.error("map2class:", e);  
  53.         }  
  54.         return bean;  
  55.     }  
  56.   
  57.     /** 
  58.      * 类型匹配 
  59.      * @param object 
  60.      * @param propType 
  61.      * @return 
  62.      */  
  63.     private static Object processType(Object object, Class propType) {  
  64.         Object reobject = null;  
  65.         if (propType.equals(java.lang.String.class)) {  
  66.             reobject = (String) object;  
  67.         } else if (propType.equals(Integer.TYPE)  
  68.                 || propType.equals(java.lang.Integer.class)) {  
  69.             reobject = new Integer((String) object);  
  70.         } else if (propType.equals(Boolean.TYPE)  
  71.                 || propType.equals(java.lang.Boolean.class)) {  
  72.             reobject = new Boolean((String) object);  
  73.         } else if (propType.equals(Long.TYPE)  
  74.                 || propType.equals(java.lang.Long.class)) {  
  75.             reobject = new Long((String) object);  
  76.         } else if (propType.equals(Double.TYPE)  
  77.                 || propType.equals(java.lang.Double.class)) {  
  78.             reobject = new Double((String) object);  
  79.         } else if (propType.equals(Float.TYPE)  
  80.                 || propType.equals(java.lang.Float.class)) {  
  81.             reobject = new Float((String) object);  
  82.         } else if (propType.equals(Short.TYPE)  
  83.                 || propType.equals(java.lang.Short.class)) {  
  84.             reobject = new Short((String) object);  
  85.         } else if (propType.equals(Byte.TYPE)  
  86.                 || propType.equals(java.lang.Byte.class)) {  
  87.             reobject = new Byte((String) object);  
  88.         } else if (propType.equals(java.util.Date.class)) {  
  89.             reobject = processDate(object);  
  90.         }  
  91.         return reobject;  
  92.     }  
  93.   
  94.     /** 
  95.      * 日期类型匹配 
  96.      * @param object 
  97.      * @return 
  98.      */  
  99.     private static Date processDate(Object object) {  
  100.   
  101.         if (object != null) {  
  102.             String dateStr = (String) object;  
  103.             dateStr = dateStr.replaceAll("-""");  
  104.             dateStr = dateStr.replaceAll(":""");  
  105.             dateStr = dateStr.trim();  
  106.             int year = 1900;  
  107.             int month = 1;  
  108.             int date = 1;  
  109.             int hrs = 0;  
  110.             int min = 0;  
  111.             int sec = 0;  
  112.             if (dateStr.length() >= 4) {  
  113.                 year = Integer.parseInt(dateStr.substring(04));  
  114.             }  
  115.             if (dateStr.length() >= 6) {  
  116.                 month = Integer.parseInt(dateStr.substring(46));  
  117.             }  
  118.             if (dateStr.length() >= 8) {  
  119.                 date = Integer.parseInt(dateStr.substring(68));  
  120.             }  
  121.             if (dateStr.length() >= 10) {  
  122.                 hrs = Integer.parseInt(dateStr.substring(810));  
  123.             }  
  124.             if (dateStr.length() >= 12) {  
  125.                 min = Integer.parseInt(dateStr.substring(1012));  
  126.             }  
  127.             if (dateStr.length() >= 14) {  
  128.                 sec = Integer.parseInt(dateStr.substring(1214));  
  129.             }  
  130.             return new java.util.Date(year, month - 1, date, hrs, min, sec);  
  131.         } else {  
  132.             return null;  
  133.         }  
  134.   
  135.     }  
  136.   
  137.     private static PropertyDescriptor[] propertyDescriptors(Class c) {  
  138.         BeanInfo beanInfo = null;  
  139.         try {  
  140.             beanInfo = Introspector.getBeanInfo(c);  
  141.         } catch (IntrospectionException e) {  
  142.             logger.error("PropertyDescriptor:",e);  
  143.         }  
  144.         return beanInfo.getPropertyDescriptors();  
  145.     }  
  146.   
  147.     public static void main(String[] arg) {  
  148.   
  149.         Map map = new HashMap();  
  150.         map.put("email""email");  
  151.         map.put("endtm""2007-01-11");  
  152.         map.put("password""23232");  
  153.         map.put("roleid""1");  
  154.         map.put("status""3");  
  155.         Loguser user = (Loguser) map2class(  
  156.                 "Loguser", map);  
  157.         System.out.println(user.getPassword());  
  158.         System.out.println(user.getEmail());  
  159.         System.out.println(user.getStatus());  
  160.         System.out.println(user.getEndtm());  
  161.     }  
  162. }  
分享到:
评论

相关推荐

    逆向生成工具,有数据库表生成java bean实体类

    对于每一个表,工具会自动生成一个对应的Java Bean类,这个类包含了表中的字段作为类的属性,并为每个属性提供了getter和setter方法。此外,如果在XML配置文件中启用了相关选项,工具还会生成toString、equals和...

    bean对象生成数据表

    "bean对象生成数据表"这一技术就是利用这种对应关系,反向工程将Bean类转化为实际的数据库表结构,从而简化数据库设计和开发流程。这种方法在快速开发或者基于已有Bean模型构建数据库时非常实用。 首先,我们需要...

    java bean自动生成工具

    XlsToCode可能支持自定义模板功能,允许开发者根据需求调整生成的Bean类结构,例如添加额外的方法或注解。 6. **注意事项** - 在使用前,确保数据库连接信息正确,并且Excel文件中的表结构信息与数据库实际结构...

    MyBatis反向生成bean

    MyBatis反向生成bean是一项高效实用的开发工具功能,它可以帮助Java开发者快速地根据数据库表结构自动生成对应的Java Bean类,极大地提升了开发效率。在实际的开发过程中,手动创建这些Bean类可能会耗费大量时间,而...

    xmlbean生成jar xsd文件生成jar常见问题

    ### XMLBean生成JAR与XSD文件转换常见问题解析 #### 概述 在软件开发过程中,特别是涉及Web服务或需要处理XML数据的应用程序中,经常需要用到XMLBeans工具来将XML Schema (XSD) 文件转换成Java代码并进一步打包成...

    java自动生成bean 根据数据库表及字段

    2. **定义生成规则**:在`model.txt`这样的配置文件中,你可以设定生成Bean的规则,比如指定生成的类名、包名,以及是否需要生成getter/setter方法、构造函数、equals()和hashCode()等。 3. **模板定制**:工具通常...

    java bean生成工具

    很好用的一款javabean生成工具,只需要输入属性名称、类型、注释、自动生成带有注释的java实体类

    mybatis自动生成bean、mapper工具

    例如,可以选择生成基本类型还是包装类型,是否生成equals()和hashCode()方法,以及如何处理日期字段等。 3. **注解与XML映射**:MyBatis支持使用注解或者XML来定义Mapper接口的SQL语句。生成工具可以根据选择生成...

    自动根据数据库生成JAVA BEAN和DAO

    4. 生成的代码:在“实体”目录下,你会找到生成的Java Bean类,它们包含了与数据库表字段对应的属性及get/set方法。在“DAO生成工具”目录下,会有相应的DAO接口和实现类,包含了对数据库的基本操作方法。 5. 集成...

    自动生成Bean代码

    在Java开发中,提高效率的一个重要手段是自动化生成重复性的代码,例如ORM框架中的数据访问对象(DAO)层、服务层以及实体Bean类。这里提到的"自动生成Bean代码"是指利用工具或库来根据数据库中的表结构自动生成与之...

    java自动生成bean 根据数据库表及字段(.net 2.0版本)

    这意味着开发者可以根据项目的具体需求定制生成Bean类的格式,比如添加特定的注解、序列化支持或者其他特定的方法。例如,该工具支持生成带MySQL注释的Bean文件,这对于理解代码和数据库之间的关系非常有帮助,尤其...

    根据表结构自动生成bean类和mybatis dao类

    标题所提到的"根据表结构自动生成bean类和mybatis dao类"是一种自动化工具或技术,旨在提高开发效率,减少重复劳动。下面我们将详细探讨这一主题。 首先,Bean类是Java编程中的一种设计模式,主要用于封装数据。在...

    jfinal自动生成类工具

    通过这个工具,我们可以快速地根据数据库中的表结构生成对应的Bean类,包括成员变量、getter和setter方法,极大地提高了开发效率。 1. **JFinal框架基础** JFinal采用MVC架构,以Action为中心,实现了模型-视图-...

    java自动生成bean 根据数据库表及字段(.net 2.0版本)新添Dao层jdbc生成

    生成的Bean类应包含属性(fields)、getter和setter方法,以及可能的构造函数。这些类可以作为模型,用于在业务逻辑层和DAO层之间传递数据。 2. **DAO接口的生成**: DAO接口定义了对数据库的基本操作,如查询、...

    图灵 x 实体Bean生成器v1.0

    如果你想节省时间和精力不防看看这个咚咚图灵 x 实体Bean生成器v1.0图灵 x 实体Bean生成器v1.0图灵 x 实体Bean生成器v1.0图灵 x 实体Bean生成器v1.0图灵 x 实体Bean生成器v1.0图灵 x 实体Bean生成器v1.0

    根据json串自动生成JAVA BEAN工具

    这类工具的主要功能是解析JSON字符串,并自动生成符合Java Bean规范的类,这样开发者就可以方便地将JSON数据映射到Java对象上,进行进一步的操作。通过输入JSON格式的数据,工具会自动分析其结构,包括键值对、数组...

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

    "根据读取数据库自动生成实体bean"的标题表明我们将讨论一种方法,通过该方法我们可以自动化这个过程。这种方法主要利用了FreeMarker模板引擎,它是一个强大的、轻量级的、基于模板的语言,用于生成任何类型的文本...

    spring自动生成bean项目

    3. **Bean模板生成**:根据获取的元数据,项目将按照预设的模板生成Java Bean类。每个字段对应数据库表的一列,字段类型通常与数据库字段类型相对应。此外,还可能包含getter和setter方法,以及可能的构造函数和...

    java bean代码生成器

    可生成java 部分原码 带入注释 如 bean ro bean bean to map sql 资源付值

    动态生成Java Bean测试页面

    标题“动态生成Java Bean测试页面”涉及到的是在Java开发中如何自动生成用于测试Bean类的网页。这个过程通常是为了提高开发效率,减少手动编写测试代码的工作量,确保Bean类的属性能够正确设置和获取。在Java世界里...

Global site tag (gtag.js) - Google Analytics