2014-01-11 235 views
2

如何將oracle數據類型映射到java數據類型?如何將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"; 
    } } 

例如: 預言=>號(2,3)=> javaDataType = BigDecimal的; oracle => number(15)=> javaDataType = BigDecimal;

將oracle dataType轉換爲java的最佳途徑dataType

回答

3

我不太清楚你想做什麼。
甲骨文的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長 - >http://docs.oracle.com/javase/7/docs/api/java/sql/ResultSet.html#getLong%28int%29

getDouble檢索數如Java長 - >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

這是您 - 開發人員 - 負責選擇適當的方法爲您的數據。

+2

我想通過區分源代碼來將「數據類型」出現在「ORACEL」中,以將「JAVA」源代碼中的「數據類型」確定爲例如「NUMBER(13,2)」到「FLOAT」。 – user3184842

相關問題