繁体   English   中英

mybatis 如何使用 mysql 类型 tinyint 处理布尔字段?

[英]how mybatis process Boolean field using mysql type tinyint?

我将 mysql 类型 tinyint(1) 用于 rabbitmqFlag 字段。但是,并非例外,实际上,值 -1 或 >0 将映射到 true.other 将映射到 false。 通常,我们认为 0 为假,其他为真。为什么?

@Data
public class User implements Serializable {

    private Long id;
    private String name;
    private Integer age;

    private Boolean rabbitmqFlag;

}

@Mapper
public interface UserMapper {

    @Select("SELECT * FROM user1 WHERE rabbitmq_flag = 0")
    List<User> findUnSend();

}

MyBatis 不处理数值。
它只返回ResultSet#getBoolean的结果。

根据驱动源代码注释,是为了兼容ODBC驱动等。

public Boolean createFromLong(long l) {
  // Goes back to ODBC driver compatibility, and VB/Automation Languages/COM, where in Windows "-1" can mean true as well.
  return (l == -1 || l > 0);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM