假设我有一个名为status的列,其类型为tinyint(1)
的表,我使用以下jdbc查询从数据库中获取特定行,但现在这里的queryForMap()
方法将自动修改tinyint(1)
状态字段为boolean
类型,但实际上我不仅要使用此字段来保存0或1(例如还存储值2),所以我更喜欢此类状态为byte
。我怎样才能实现这个目标?
Map<String, Object> task = jdbcTemplate
.queryForMap("select * from task where id = ? and deleted = 0 for update", taskId);
提前致谢。
答案 0 :(得分:0)
MySQL使用tinyint(1)
作为boolean
的别名。所以mysql的驱动程序会将tinyint(1)
视为boolean
值。您可以通过将tinyInt1isBit=false
添加到您的连接网址来禁用此未来(如上面链接中的说明)。之后,您将获得Integer
列的tinyint(1)
。但我建议服从别名,并将您的表定义为tinyint
或tinyint(4)
,以确定它不是boolean
。