[英]how to compare 2 different database column data type in java
就我而言,我必須比較 2 個不同數據庫的列數據類型。 下面是示例代碼。
ResultSetMetaData metadataSrc = Src_rs.getMetaData(); // here Src_rs is source resultset
ResultSetMetaData metadataTar= Tar_rs.getMetaData(); // here Tar_rs is target resultset
int countSrc = metadataSrc.getColumnCount();
for (int i = 1; i <= countSrc; i++) {
String srcOracleType=metadataSrc.getColumnTypeName(i);
String tarMySqlType = metadataTar.getColumnTypeName(i);
}
在這里我想檢查srcOracleType
是否等於tarMySqlType
。 如果相同我想繼續執行其他需要返回false。
當我嘗試在 MySQL 和 Oracle 中創建一個數據類型為int
的表時,此查詢開始。 當我檢索兩個數據庫數據類型時,通過 Java Jdbc 代碼,對於 oracle 它給出NUMBER
而對於 mysql 它給出LONG
。
摘自 API ( http://docs.oracle.com/javase/1.4.2/docs/api/java/sql/ResultSetMetaData.html ):
getColumnTypeName(int column)
Retrieves the designated column's database-specific type name.
你可以使用:
getColumnClassName(int column)
Returns the fully-qualified name of the Java class whose instances are manufactured if the method ResultSet.getObject is called to retrieve a value from the column.
通過比較 Java 中的“轉換”而不是比較特定於數據庫的行類型會更容易。
有點晚了。
確認源編號和目標編號是否都映射到您的應用程序域中的相同數量。 如果沒有,它們就沒有可比性。
如果他們這樣做,那么您需要使用以下規則找到有效的 java 類型:
將兩個值都轉換為有效數據類型(實際只需要轉換一個)並進行比較。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.