如何使用 JDBC 正确地将 oracle 数据类型转换为 java 类型?
How to properly convert oracle data types to java types using JDBC?
我需要知道 JDBC 结果集中列的数据类型。
我能够得到 JDBC types,它们是从 Oracle 类型生成的:
ResultSet rs = databaseMetaData.getColumns(null, "C##TMPUSER", null, null);
rs.next();
int code = rs.getInt(5);
String sqlJavaType = JDBCType.valueOf(code).getName();
例如 returns NUMERIC
如果 oracle 中的列是 NUMBER
.
这是java sql Type,但我需要相应的Java类型,例如String
、int
、float
等
如何获取这些数据类型?
检查从 ResultSet
's getObject(i)
方法返回的对象的 class:
Class<?> javaColumnType = rs.getObject(n).getClass();
适用于所有列类型。
请注意,如果该列包含 null
,对 getClass()
的调用将抛出 NullPointerException
,因此您可能需要防范这种情况。
我需要知道 JDBC 结果集中列的数据类型。
我能够得到 JDBC types,它们是从 Oracle 类型生成的:
ResultSet rs = databaseMetaData.getColumns(null, "C##TMPUSER", null, null);
rs.next();
int code = rs.getInt(5);
String sqlJavaType = JDBCType.valueOf(code).getName();
例如 returns NUMERIC
如果 oracle 中的列是 NUMBER
.
这是java sql Type,但我需要相应的Java类型,例如String
、int
、float
等
如何获取这些数据类型?
检查从 ResultSet
's getObject(i)
方法返回的对象的 class:
Class<?> javaColumnType = rs.getObject(n).getClass();
适用于所有列类型。
请注意,如果该列包含 null
,对 getClass()
的调用将抛出 NullPointerException
,因此您可能需要防范这种情况。