code: protected String handleJavaType(String typeStr, ResultSetMetaData rsmd, int column) throws SQLException {
  		// 当前实现只处理 Oracle
  		if ( ! dialect.isOracle() ) {
  			return typeStr;
  		}
  		
  		// 默认实现只处理 BigDecimal 类型
  		if ("java.math.BigDecimal".equals(typeStr)) {
  			int scale = rsmd.getScale(column);			// 小数点右边的位数，值为 0 表示整数
  			int precision = rsmd.getPrecision(column);	// 最大精度
  			if (scale == 0) {
  				if (precision <= 9) {
  					typeStr = "java.lang.Integer";
  				} else if (precision <= 18) {
  					typeStr = "java.lang.Long";
  				} else {
  					typeStr = "java.math.BigDecimal";
  				}
  			} else {
  				// 非整数都采用 BigDecimal 类型，需要转成 double 的可以覆盖并改写下面的代码
  				typeStr = "java.math.BigDecimal";
  			}
  		}
  		
  		return typeStr;
  	}
docs: handleJavaType(...) 方法是用于处理 java 类型的回调方法，当 jfinal 默认
  处理规则无法满足需求时，用户可以通过继承 MetaBuilder 并覆盖此方法定制自己的
  类型转换规则
  
  当前实现只处理了 Oracle 数据库的 NUMBER 类型，根据精度与小数位数转换成 Integer、
  Long、BigDecimal。其它数据库直接返回原值 typeStr
  
  Oracle 数据库 number 类型对应 java 类型：
  1：如果不指定number的长度，或指定长度 n > 18
  number 对应 java.math.BigDecimal
  2：如果number的长度在10 <= n <= 18
  number(n) 对应 java.lang.Long
  3：如果number的长度在1 <= n <= 9
  number(n) 对应 java.lang.Integer 类型
  
  社区分享：《Oracle NUMBER 类型映射改进》http://www.jfinal.com/share/1145