MySQL データベースの DataTypes を Java プログラムに取得する方法はありますか?
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();
}
}
こんにちは、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 の数値型に変換できますが、丸め、オーバーフロー、または精度の低下が発生する場合があります。
データ型を持つ列のリストを取得しようとしている場合は、システム テーブルを使用します。
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;
DatabaseMetaData.getTypeInfo()
データベース内のタイプ名のリスト、対応するJDBCタイプ、および最大精度などの情報を取得するために使用できます。