3

MySQL データベースの DataTypes を Java プログラムに取得する方法はありますか?

4

4 に答える 4

4

で使用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.getMetaData();

          //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();    
     }
}
于 2012-09-27T05:06:30.947 に答える
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 Connector/J は、MySQL データ型と Java Java 間の変換を処理する方法が柔軟です。データ型。

一般に、MySQL のデータ型は java.lang.String に変換でき、数値型は Java の数値型に変換できますが、丸め、オーバーフロー、または精度の低下が発生する場合があります。

于 2012-09-27T04:43:52.773 に答える
1

データ型を持つ列のリストを取得しようとしている場合は、システム テーブルを使用します。

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;
于 2012-09-27T04:51:58.963 に答える
0

DatabaseMetaData.getTypeInfo()データベース内のタイプ名のリスト、対応するJDBCタイプ、および最大精度などの情報を取得するために使用できます。

于 2012-09-29T08:33:52.680 に答える