将集合转换为实体数据

public void convertMapToDataEntity(Map map) throws SystemException {
  Field[] fields = super.getClass().getDeclaredFields();
  String strValue = null;

Field currField = null;
  String currFieldName = null;
  String currFieldTypeName = null;
  String methodName = null;
  Method currMethod = null;
  try {
   for (int i = 0; i < fields.length; ++i) {
    currField = fields[i];

currFieldName = currField.getName();
    if (!(map.containsKey(currFieldName.toLowerCase())))
     continue;
    strValue = (String) map.get(currFieldName.toLowerCase());
    this.logger.debug("map参数:" + currFieldName + " =  " + strValue);

if ((strValue == null) || (strValue.equals("")))
     continue;
    currFieldTypeName = currField.getType().getName();
    methodName = "set"
      + currFieldName.substring(0, 1).toUpperCase()
      + currFieldName.substring(1);

if (currFieldTypeName.equals(Double.TYPE.getName())) {
     currMethod = super.getClass().getMethod(methodName,
       new Class[] { Double.TYPE });
     currMethod.invoke(this, new Object[] { new Double(
       DataFormat.parseNumber(strValue.trim())) });
    } else if (currFieldTypeName.equals(Long.TYPE.getName())) {
     currMethod = super.getClass().getMethod(methodName,
       new Class[] { Long.TYPE });
     currMethod.invoke(this,
       new Object[] { new Long(strValue.trim()) });
    } else if (currFieldTypeName.equals(Timestamp.class.getName())) {
     currMethod = super.getClass().getMethod(methodName,
       new Class[] { Timestamp.class });
     currMethod.invoke(this, new Object[] { DataFormat
       .getDateTime(strValue.trim()) });
    } else if (currFieldTypeName.equals(Date.class.getName())) {
     currMethod = super.getClass().getMethod(methodName,
       new Class[] { Date.class });
     currMethod.invoke(this, new Object[] { DataFormat
       .parseDate(strValue.trim()) });
    } else if (currFieldTypeName.equals(String.class.getName())) {
     currMethod = super.getClass().getMethod(methodName,
       new Class[] { String.class });
     currMethod.invoke(this, new Object[] { strValue.trim() });
    } else {
     this.logger.error("方法[" + methodName
       + "]的参数为未知的数据类型,无法进行转换");
    }
   }

} catch (Exception e) {
   this.logger.error(e.getMessage(), e);
   e.printStackTrace();
   throw new SystemException("从ServletRequest中获得dataentity错误", e);
  }
 }

时间: 2024-11-05 13:34:08

将集合转换为实体数据的相关文章

DataTable数据转换为实体

我们在用三层架构编写软件时,经常会遇到如下问题,就是三层之间的参数传递问题:如果我们在D层查询出数据是DataTable类型的,那么我们在B层甚至U层使用这条数据时,就要用DataTable类型来回传递了,无论什么情况,我们都会不可避免的要填写读取的字段.例如我们需要使用第一条记录的的某个字段,代码需要这样写:mrc.count(*)rows(*).这样写的坏处有很多: 1.容易写错,并且编译器是检查不出来的: 2.我们需要详细的了解数据库的结构: 3. 不符合面向对象编程思想. 这个问题研究了

自定义ORMapping—关系表转换为实体或实体集合对象

概述 ORMapping,中文翻译过来就是,关系对象的映射,他的作用就是使我们编程时,不用过多的关注持久层,只需要关注对象,关注业务就可以了.ORMapping主要完成两个功能:自动生成SQL语句和DataTable To Objects. 特性和反射 特性是用来描述元数据的,元数据就是源代码编译好后的代码.反射是运行时,获得对象或类的所有信息,通过这些信息,我们可以创建类获得特性信息等等 关系表转换为实体或实体集合对象的实现方式 对于关系表转换为实体或实体集合对象的实现方法可以有多种,这里说一

多条Json数据转换为泛型数据

/// <summary> /// 单条json数据转换为实体 /// </summary> /// <typeparam name="T"></typeparam> /// <param name="str">字符窜(格式为{a:'',b:''})</param> /// <returns></returns> private static T ConvertToEnt

使用集合组织相关数据

一.集合的概念: 集合:某些指定的对象集在一起就是集合. 比如:一个容器内有机器猫,樱桃小丸子,奥特曼,这个包括他们的容器就叫做集合 数组:可以存储相同数据类型的一堆数据的容器 二.ArrayList的使用: 在S1的时候我们学习了数组,但是数组有一定的局限性,由于给数组进行添加,删除的时候特别麻烦所以有了集合来帮忙实现所具备的功能而不像数组那么局限 集合的优点:{1.自动扩容 {2.集合中很多方法能让我们更加快捷的操作集合中的数据 集合的本质:{1.使用ArrayList首先需要引入命名空间

《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型 (转)

第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以跳过本章. 本章将带你漫游使用实体框架建模的基本实例,建模是实体框架的核心特性,同时也是区别实体框架和微软早期的数据访问平台的特性.一旦建好模,你就可以面向模型编写代码,而不用面向关系数据库中的行和列. 本章以创建一个简单概念模型的实例开始,然后让实体框架创建底层的数据库,剩下的实例,将向你展示,如

4.使用Jackson将Json数据转换成实体数据

Jar下载地址:http://jackson.codehaus.org/ 注意:类中的属性名称一定要和Json数据的属性名称一致(大小写敏感),类之间的嵌套关系也应该和Json数据的嵌套关系一致. 4.使用Jackson将Json数据转换成实体数据,布布扣,bubuko.com

使用数据集(DataSet)、数据表(DataTable)、集合(Collection)传递数据

数据集(DataSet).数据表(DataTable).集合(Collection)概念是.NET FrameWork里提供数据类型,在应用程序编程过程中会经常使用其来作为数据的载体,属于ADO.NET的一部分.今天我们WCF分布式开发步步为赢第8节的内容:使用数据集(DataSet).数据表(DataTable).集合(Collection)传递数据.本节内容除了介绍几个类型概念外的,同样会详细给出代码的实现过程.此外我们会分析这几种数据类型的优势和缺点,以及在面向对象的服务开发过程中如何解决

Dynamic CRM 2013学习笔记(三十一)自定义用excel导入实体数据

有一个实体的子表数据量太大,于是客户想用execel来导入实体数据.首先想到的是用系统自带的Import Data,客户嫌太麻烦,比如lookup字段要做map等. 下面是具体的实现步骤: 一.定义excel数据模板 1. 利用系统自带的Download Template For Import下载系统自带的模板 2. 去掉不需要的列,比如有些列是自动计算,自动赋值 3. 保存为excel文件,并copy到crm server里的isv目录下 4. 定义一个按钮,并指定调用下面的js: // ex

Java基础知识强化之IO流笔记45:IO流练习之 把集合中的数据存储到文本文件案例

1. 把集合中的数据存储到文本文件案例:    需求:把ArrayList集合中的字符串数据存储到文本文件 ? (1)分析:通过题目的意思我们可以知道如下的一些内容,ArrayList集合里存储的是字符串.遍历ArrayList集合,把数据获取到.然后存储到文本文件中.文本文件说明使用字符流. (2) 数据源: ArrayList<String> -- 遍历得到每一个字符串数据 目的地: a.txt -- FileWriter -- BufferedWriter 2. 代码示例: 1 pack