oracle 通过jdbc 怎么把字段的数据类型准确的转换为java类型

如题所述

/**
 * 用的是MyBatis Generator。
 * 继承JavaTypeResolverDefaultImpl这个类
 * 大致这么个意思,里面的长度自己改改吧,我这里的不太对。
 * @param introspectedColumn
 * @return
 */
@Override
public FullyQualifiedJavaType calculateJavaType(IntrospectedColumn introspectedColumn) {
    FullyQualifiedJavaType answer;
    JdbcTypeInformation jdbcTypeInformation = typeMap.get(introspectedColumn.getJdbcType());

    if (jdbcTypeInformation == null) {
        switch (introspectedColumn.getJdbcType()) {
            case Types.DECIMAL:
            case Types.NUMERIC:
                if (introspectedColumn.getScale() > 0
                    || introspectedColumn.getLength() > 24
                    || forceBigDecimals) {
                    answer = new FullyQualifiedJavaType(BigDecimal.class.getName());
                } else if (introspectedColumn.getLength() > 10) {
                    answer = new FullyQualifiedJavaType(Long.class.getName());
                } else if (introspectedColumn.getLength() > 4) {
                    answer = new FullyQualifiedJavaType(Integer.class.getName());
                } else if (introspectedColumn.getLength() == 1) {
                    answer = new FullyQualifiedJavaType(Boolean.class.getName());
                } else {
                    answer = new FullyQualifiedJavaType(Short.class.getName());
                }
                break;

            default:
                answer = null;
                break;
        }
    } else {
        answer = jdbcTypeInformation.getFullyQualifiedJavaType();
    }

    return answer;
}

温馨提示:内容为网友见解,仅供参考
第1个回答  2016-07-20
用mybatis或者hibernate
第2个回答  2016-07-20
你数据库设置的什么类型,java就用什么类型接。追问

自动将数据库表生成javabean;区分不了integer,number,number(11,2)

相似回答