JDBC日期時間類型
P粉486138196
P粉486138196 2023-12-27 20:52:41
0
1
570

我在 MySQL 資料庫中有一個 DATETIME 欄位。我使用 ResultSet 元資料來檢索列類型,它會傳回 TIMESTAMP 這是不正確的。如何取得此列的正確 java.sql.SQLType 值?

我會嘗試更具體。我用 Java 程式碼定義資料庫的結構。例如;

Column TITLE = new Column(JDBCType.VARCHAR).size(100).title("Created");

然後我的小型驗證器程式碼會建立此列(假設表定義在那裡)。然後,稍後如果我將此程式碼修改為

Column TITLE = new Column(JDBCType.VARCHAR).size(200).title("Created");

我的小型驗證器將列大小變更為 200。為此,我將元資料檢索為

DatabaseMetaData metaData = connection.getMetaData();

然後存取列屬性

ResultSet resultSet = metaData.getColumns(getCatalog(), schema, table, columnName);

這將傳回 JDBCType 枚舉。假設我在 MySQL DATETIME 欄位上執行此查詢。我確實知道在Java中沒有這樣的東西,它的等價物是 java.sql.Timestamp 類別。但在 MySQL 中,DATETIME 不是 TIMESTAMP。

如何在Java程式碼中區分MySQL DATETIME和MySQL TIMESTAMP

P粉486138196
P粉486138196

全部回覆(1)
P粉338969567

從通用JDBC 角度來看,您可以使用DatabaseMetaData .getColumns(...),這應該回傳:

換句話說,它應該包含資料來源中使用的資料類型的名稱(在您的情況下,MySQL應該會傳回DATETIME)。

注意:我還沒有真正驗證過這一點,我的答案純粹基於通用 JDBC 要求。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板