如何将oracle dataType映射到
java dataType?
我尝试如下,但不准确.
DatabaseMetaData databaseMetaData = this.getConnection().getMetaData(); ResultSet rs = databaseMetaData.getColumns(catalog,schema,tableName,columnName); while (rs.next()) { if ( rs.getString("data_type").equals(Types.NUMERIC)){ javaDataType = "java.math.BigDecimal"; } }
例如 :
oracle =>数字(2,3)=> javaDataType = BigDecimal;
oracle => number(15)=> javaDataType = BigDecimal;
将oracle dataType转换为java dataType的最佳方法?
解决方法
我不太确定你想做什么.
Oracle在java clases和sql类型之间有默认映射,
请看一下这张表: http://docs.oracle.com/cd/E11882_01/java.112/e16548/apxref.htm#JJDBC28906
Oracle在java clases和sql类型之间有默认映射,
请看一下这张表: http://docs.oracle.com/cd/E11882_01/java.112/e16548/apxref.htm#JJDBC28906
例如,从NUMBER类型到java类型的转换有效:
+---------------+--------------------+ | sql data type | Java types | +---------------+--------------------+ | NUMBER |boolean | | |char | | |byte | | |short | | |int | | |long | | |float | | |double | | |java.lang.Byte | | |java.lang.Short | | |java.lang.Integer | | |java.lang.Long | | |java.lang.Float | | |java.lang.Double | | |java.math.BigDecimal| | |oracle.sql.NUMBER | +---------------+--------------------+
如果我们想要将NUMBER作为特定的java类型,我们需要使用ResultSet接口中的一个适当的getXXX方法,例如:
getInt将数字检索为java int – > http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getInt%28int%29
getLong将数字检索为java long – > http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getLong%28int%29
getDouble将数字检索为java long – > http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getDouble%28int%29
getBigDecimal将数字检索为java BigDecimal – > http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getBigDecimal%28java.lang.String,%20int%29
您的 – 开发人员 – 有责任为您的数据选择合适的方法.