簡體   English   中英

如何在Java中獲取數據庫特定的數據類型?

[英]How to get database specific datatypes in java?

考慮這個代碼段

Class.forName ("oracle.jdbc.OracleDriver");

          connection = DriverManager.getConnection
             ("jdbc:oracle:thin:@//XXX.XXX.XXX.XXX:1521/xe", "abc", "def");
 DatabaseMetaData metaData=connection.getMetaData();
        ResultSet rsc= metaData.getColumns(null, "MYSCHEMA", "MYTABLE", null);
        while (rsc.next()){

            System.out.println(rsc.getString("COLUMN_NAME").toUpperCase());
            System.out.println(rsc.getString("TYPE_NAME").toUpperCase());
            System.out.println(rsc.getInt("COLUMN_SIZE"));
            System.out.println(rsc.getInt("DECIMAL_DIGITS"));   
            System.out.println(rsc.getString("IS_NULLABLE").toUpperCase()) ;
            System.out.println(rsc.getInt("ORDINAL_POSITION"));
            System.out.println(rsc.getInt("DATA_TYPE"));
            System.out.println("********************************************");
        }

通過此代碼段,我可以知道,如果假設MYTABLE在Oracle中有一個名稱為MYTABLEID且類型為NUMBER的列,那么我如何知道Mysql或PostGresql中與NUMBER等價的對應數據類型名稱是什么? 主要目的是獲取數據庫特定的數據類型。 像在Oracle中一樣,我們具有CLOB數據類型,但在postgresql中,我們具有bytea作為等效數據類型。 我想要特定於數據庫的類型,以便可以創建DDL(創建表語句)以在特定數據庫中創建表(從oracle到mysql或postgresql等)。

我將創建一個XML文件,其中包含每個數據庫的信息以及任何特定的數據庫數據類型(例如CLOB或bytea),然后我將使用此信息並針對您在代碼中可能具有的任何特定用途檢索它。 希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM