在实际开发过程中,遇到过如题所描述场景:java 实体中 Integer 字段,MySQL 数据库表中相应字段设为 tinyint(1) 类型,保存时,数据正常(假设为 8),但从数据库中读取时,发现变为 boolean 类型(true)。

经查询,了解到其他网友说的:tinyint 对应的就是 boolean 。故提供了一个解决方案:项目中 jdbcUrl上添加属性 tinyInt1isBit=false (默认为true)。

方法虽好,但考虑到项目其他参与者可能会应用此属性,故只能在特殊sql中做特殊处理:做一个加运算即可。假设字段名为 expired_days,sql 可以这样写 select (expired_days+0) expired_days, ...