2012-09-27 85 views
1

有什麼方法可以將MySQL數據庫的DataTypes導入到java程序中?將Mysql的數據類型導入到Java程序中

+0

我想到的使用getKeyword()方法。但它會返回MySQL中的所有關鍵字。我能做些什麼只獲得數據類型關鍵字? – rajesh

+0

你能澄清你的意思嗎?數據類型的名稱?你需要什麼目的? –

+0

您是否試圖獲取所有可用數據類型的列表,而不管數據庫中的具體實現如何,或者您是否希望獲取模式元數據,即所有表及其列與數據類型的列表? – amphibient

回答

3

嗨,我們可以只通過實現幾類和包是JAVA已經有喜歡 -

1.CHAR,VARCHAR,BLOB,TEXT,ENUM和SET做到這一點 - >
的java.lang。 String,java.io.InputStream,java.io.Reader,java.sql.Blob,java.sql.Clob
2.FLOAT,REAL,DOUBLE PRECISION,NUMERIC,DECIMAL,TINYINT,SMALLINT,MEDIUMINT,INTEGER,BIGINT- >
java.lang.String,java.lang.Short,java.lang.Integer,java.lang.Long,java.lang.Double,java.math.BigDecimal
3.DATE,TIME,DATETIME,TIMESTAMP- >
java.lang.String,java.sql.Date,java.sql.Timestamp
MySQL連接器/ J在處理MySQL數據類型和Java數據類型之間轉換的方式上很靈活。

通常,任何MySQL數據類型都可以轉換爲java.lang.String,並且任何數字類型都可以轉換爲任何Java數字類型,儘管可能會發生舍入,溢出或丟失精度。

+0

謝謝@Prerit Mohan – rajesh

+0

@rajesh>這是答案對你有幫助,請將其標記爲已接受的答案。 –

0

,如果你想獲得與數據類型的列的列表,然後使用系統表:

SELECT TABLE_NAME, ORDINAL_POSITION, 
COLUMN_NAME, COLUMN_TYPE, IS_NULLABLE 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE TABLE_SCHEMA = {YOUR_DB} 
ORDER BY TABLE_NAME, ORDINAL_POSITION; 
2

使用getColumnTypeName()上的ResultSetMetaData。

這方面的一個例子是:

public class getColumnDataTypes 
{ 
    public static void main (String[] args) throws Exception 
    { 
      String driver = "com.mysql.jdbc.Driver"; 
      String connString = "jdbc:mysql://localhost:3300/DATABASE,USERNAME,PASSWORD"; 

      Class.forName(driver); 
      Connection connection = DriverManager.getConnection(connString); 

      Statement statement = connection.createStatement(); 

      //Query 
      ResultSet resultSet = statement.executeQuery("SELCET * FROM table"); 

      ResultSetMetaData rsmd = resultSet.getMetaDate(); 

      //Get number of columns returned 
      int numOfCols = rsmd.getColumnCount(); 

      //Print out type for each column 
      for(int i=1; i<=numOfCols; ++i) 
      { 
       System.out.println("Column [" + i + "] data type: " + rsmd.getColumnTypeName(i)); 
      } 

      //Close DB connection 
      statement.close();   
      connection.close();  
    } 
}