MySQL 데이터베이스에 DATETIME
列。我使用 ResultSet
元数据来检索列类型,它返回 TIMESTAMP
这是不正确的。如何获取此列的正确 java.sql.SQLType
값이 있습니까?
더 구체적으로 말씀드리겠습니다. Java 코드를 사용하여 데이터베이스의 구조를 정의합니다. 예를 들면
으아악그런 다음 내 작은 유효성 검사기 코드가 이 열을 생성합니다(테이블이 거기에 정의되어 있다고 가정). 그런 다음 나중에 이 코드를
로 수정하면 으아악내 작은 유효성 검사기가 열 크기를 200으로 변경합니다. 이를 위해 메타데이터를
로 검색합니다. 으아악그런 다음 열 속성에 액세스하세요
으아악이렇게 하면 JDBCType
枚举。假设我在 MySQL DATETIME
列上运行此查询。我确实知道在Java中没有这样的东西,它的等价物是 java.sql.Timestamp
클래스가 반환됩니다. 그러나 MySQL에서는 DATETIME이 TIMESTAMP가 아닙니다.
Java 코드에서 MySQL DATETIME
和MySQL TIMESTAMP
을 구별하는 방법은 무엇입니까?
일반 JDBC 관점에서
DatabaseMetaData .getColumns(...)
, 다음이 반환되어야 합니다:DatabaseMetaData .getColumns(...)
즉, 데이터 소스에 사용된 데이터 유형의 이름이 포함되어야 합니다(귀하의 경우 MySQL은
DATETIME
DATETIME
을 반환해야 함).참고: 실제로 이를 확인하지는 않았습니다. 제 대답은 순전히 일반적인 JDBC 요구 사항을 기반으로 합니다.