【发布时间】:2019-05-05 03:21:54
【问题描述】:
https://dev.mysql.com/doc/connector-j/8.0/en/connector-j-reference-configuration-properties.html
yearIsDateType
JDBC 驱动程序是否应该将 MySQL 类型“YEAR”视为 java.sql.Date, 还是作为一个简短的?
默认:真
问题:如果YEAR(4) 是mysql 中的Integer(默认情况下是这样),为什么mysql-connector java 驱动程序会将年份值作为Date?
我的意思是,这个默认配置有什么意义吗?
因为:如果您不仔细查看数据库,您会假设例如2017-01-01 的值直接来自数据库。但是,db 仅将 2017 保存为年份值,而 java 默默地添加了月份的第一天。
【问题讨论】:
-
一种可能性:默认行为可能最初是驱动程序工作的(唯一)方式。然后,在很明显这可能不是一个好主意之后,他们添加了配置选项来更改行为,但将默认设置保留为旧行为以避免破坏现有代码。
-
我正在考虑以主要基于意见的方式投票结束,因为我们只能猜测。
标签: java mysql jdbc mysql-connector