oracl.sql.Timestamp转java.util.Date

 

借助basicName获取timestamp字段,MySQL返回java.sql.Timestamp,而Oracle返回oracle.sql.Timestamp;

timestampValue继承了java.util.Date,所以可以借此来讲oracle中的timestamp字段在jdbc的获取方式下,转换为util下的Date类并格式化,then done!
/**
     * 转换映射表映射值
     * 
     * @param obj
     *            转换对象
     * @param dataType
     *            转换类型 1-字符串;2-小数;3-整型;4-日期时间
     * @param dataFormat
     *            转换格式
     * @param jsonMap
     *            映射数据
     * @return
     * @throws SQLException
     */
    private Object transferMappingValues(Object obj, int dataType, String dataFormat, Map jsonMap)
        throws SQLException {
        // 1.判断类型;2.转换格式;3.取关联值
        String basicName = obj.getClass().getSimpleName();
        switch (dataType) {
            case 1:
            case 3:
                // 字符串,整型:不需转格式
                break;
            case 2:
                // 小数,默认不截取
                if (obj == null || "".equals(obj)) {
                    // 数据库无值且无默认值,赋值0
                    return 0;
                }
                if (!StringUtil.isNullOrEmpty(dataFormat)) {
                    int decimal = Integer.parseInt(dataFormat);
                    if (decimal >= 0) { 
                        String format = String.format("%.0" + decimal + "f", Double.parseDouble(obj.toString()));
                        obj = (StringUtil.isNullOrEmpty(format) ? obj : Double.parseDouble(format));
                    }
                }
                break;
            case 4:
                // 日期时间
                if (obj == null || "".equals(obj)) {
                    // 数据库无值且无默认值,赋值‘’
                    return "";
                }
                if ("Date".equals(basicName)) {
                    if (!StringUtil.isNullOrEmpty(dataFormat)) {
                        obj = new SimpleDateFormat(dataFormat).format(obj);
                    }
                }
                // mysql
                if ("Timestamp".equals(basicName)) {
                    Date date = (Timestamp)obj;
                    if (!StringUtil.isNullOrEmpty(dataFormat)) {
                        obj = new SimpleDateFormat(dataFormat).format(date);
                    }
                }
                // oracle
                if ("TIMESTAMP".equals(basicName)) {
                    TIMESTAMP t = (TIMESTAMP)obj;
                    Date date = t.timestampValue();
                    if (!StringUtil.isNullOrEmpty(dataFormat)) {
                        obj = new SimpleDateFormat(dataFormat).format(date);
                    }
                }
                break;
            default:
                break;
        }
        return jsonMap.get(obj + "") == null ? StringUtil.getObjectByDataType(obj) : jsonMap.get(obj + "");
    }

 

你可能感兴趣的:(oracl.sql.Timestamp转java.util.Date)