gpt4 book ai didi

java - 如何将 oracle 数据类型映射到 java 数据类型?

转载 作者:搜寻专家 更新时间:2023-11-01 01:43:24 26 4
gpt4 key购买 nike

如何将oracle数据类型映射到java数据类型?

我试过如下但不准确。

 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 => number(2,3) => javaDataType = BigDecimal;oracle => number(15) => javaDataType = BigDecimal;

将 oracle dataType 转换为 java dataType 的最佳方法?

最佳答案

我不太确定你想做什么。
Oracle 在 java 类和 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接口(interface)中的适当的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

这是您(开发人员)的责任,为您的数据选择合适的方法。

关于java - 如何将 oracle 数据类型映射到 java 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21061890/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com