oracle 类型 java 类型互转

各种类型转换.


/**

 *
 *  FieldHelper 类描述: TODO 创建人: wyh 创建时间:2013-3-21 上午09:40:50
 *
 * @version 1.0
 *
 */
public class FieldHelper<T> {

    private static Log log = LogFactory.getLog(FieldHelper.class);

    /**
     * 用户数据库 column
     *
     * @param list
     * @param t
     */
    public void fillObject(Map<String, T> m, Class<T> c, T t) {
        if (null != m && null != c) {
            try {
                Field[] field = c.getDeclaredFields();
                for (Field f : field) {
                    PropertyDescriptor pd = new PropertyDescriptor(f.getName(),c);
                    Method md = pd.getWriteMethod();
                    Object value = m.get(fieldName(f.getName()));
                    String methodName = md.getParameterTypes()[0].toString();
                    if(null != value){
                    if (methodName.equals("class java.lang.Long")) {
                        value =  new BigDecimal(String.valueOf(value)).longValue();
                        
                    } else if (methodName.equals("class java.lang.Integer")) {
                        value = new BigDecimal(String.valueOf(value)).intValue();
                        
                    } else if (methodName.equals("class java.lang.Double")) {
                        value = new BigDecimal(String.valueOf(value)).longValue();
                        
                    } else if (methodName.equals("class java.lang.Float")) {
                        value = new BigDecimal(String.valueOf(value)).floatValue();
                        
                    }else if (methodName.equals("class java.util.Date")) {
                        if(value instanceof java.sql.Timestamp){
                            value=new Date(((Timestamp)value).getTime());
                        }
                        else if(value instanceof oracle.sql.TIMESTAMP){
                               TIMESTAMP time = (TIMESTAMP)value;
                               Timestamp time1 = time.timestampValue();
                               value = new Date(time1.getTime());
                        }
                        else if(value instanceof java.sql.Date){
                            value=new Date(((java.sql.Date)value).getTime());
                        }
                        else{
                            value = (Date)value;
                        }
                    }else if(methodName.equals("class java.math.BigDecimal")){
                        value = new BigDecimal(String.valueOf(value));
                    }
                    md.invoke(t, value);
                    }
                }
            } catch (Exception e) {
                log.error("获取数据失败", e);
            }
        }

    }

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值