[英]How can I get different datatypes from ResultSetMetaData in 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.