登录  /  注册
JDBC日期时间类型
P粉486138196
P粉486138196 2023-12-27 20:52:41
[MySQL讨论组]

我在 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 要求。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 //m.sbmmt.com/ All Rights Reserved | php.cn | 湘ICP备2023035733号