`

为什么tinyint(1)映射po类中属性时的字段类型为Boolean

阅读更多
问题描述:

建表,字段类型 tinyint 长度 1 ,映射为PO类中的字段类型为 Boolean
tinyint(3) --> Byte
tinyint(1) --> Boolean

问题原因:
1.MySQL中无Boolean类型数据;MySQL中将Boolean==》tinyint(1)
2.BOOL, BOOLEAN
These types are synonyms(同义词) for TINYINT(1). A value of zero is considered(认为是) false. Nonzero(不为0) values are considered true
3.Tinyint(1)  就只用来保存 bool 值  只有0和1  不要保存其他的值

如果要保存多的值,就用 Tinyint(4) 这样的,那么到了Ef中这个 类型会变成  sbyte ,这个就是一个整形 .

备注:sbyte:存储8位带符号整数。sbyte中的s代表带符号(signed),意味着变量可为正值或负值。sbyte变量的最小可能值为-128,最大可能值为127。




解决方法:
1.强制修改mapResult中的映射,将po属性的类型由Boolean改为Byte
2.查询 tinyint(1) 的sql 字段时,转为 (status+0) as status
3.避免使用 tinyint(1) 作为字段的数据类型

博文参考:
关于 MySQL 的 boolean 和 tinyint(1)
Mysql tinyint长度为1时在java中被转化成boolean型
http://www.cnblogs.com/joeylee/p/3878223.html
分享到:
评论

相关推荐

    Mybatis Generator将tinyint映射成Integer的解决办法.pdf

    这是因为在MyBatis中,对于tinyint(1)字段,它会将其映射为jdbcType=BIT,即使设置了`tinyInt1isBit=false`,也无法改变这一行为,因为BIT类型与Integer的映射冲突。 为了解决这个问题,有两种主要方法: 1. **...

    SQLServer常用字段类型

    4. **Tinyint**:微型整数,仅占用1字节,取值范围为0至255,特别适合存储少量且非负的整数,如等级、年龄等。 5. **Decimal(p,s)** 和 **Numeric**:用于存储固定精度的十进制数,其中p代表总位数,s代表小数位数...

    hibernate使用中与各种数据库字段类型对应类型训练

    ORM允许我们将数据库表结构映射到Java类,每个表对应一个类,表中的字段对应类的属性。这种映射是通过Hibernate的配置文件(如.hbm.xml)或者使用注解完成的。 对于不同的数据库字段类型,Hibernate提供了一系列的...

    MSSQL中所有字段类型的区别

    MSSQL 中所有字段类型的区别 MSSQL 中的字段类型有很多,了解每种类型的特点和使用场景是非常重要的。本文将详细介绍 MSSQL 中所有字段类型的区别。 一、char、varchar、text 和 nchar、nvarchar、ntext 的区别 ...

    MySQL数据库:表的字段类型.pptx

    数据库和表的创建与管理 表的字段类型 课程目标 掌握 —— 不同数据类型的选择。 理解 —— MySQL支持的数据类型;...每个时间类型有一个有效值范围和一个"零"值,当指定不合法的MySQL不能表示的值时使

    jbpm3.2.2在mysql中字段的类型的错误

    需要注意的是,在将`TINYINT(1)`转换为`BOOLEAN`类型时,MySQL会自动将非零值转换为`TRUE`,零值转换为`FALSE`。如果原来的`TINYINT(1)`字段中存储了除0和1之外的其他数值,则在转换前应先进行数据清理或转换,以...

    Hibernate数据类型映射及ID

    在这里,`name`属性指定了实体类中的ID字段名称,`type`属性指定了ID字段的数据类型,而`column`元素用于指定数据库表中对应的列名以及精度等细节。不同的ID生成策略包括`increment`、`assigned`、`sequence`、`...

    MySql数据库的列类型(字段类型).

    当指定该属性时,取值范围不平移到正数区间,而只是简单地把浮点类型的负数部份去掉。浮点类型也有M(1~255)和D(1~30,且不能大于M-2)分别表示显示宽度和小数位数。M和D在FLOAT和DOUBLE中是可选的,默认,当MySQL...

    mybatis-generator自动生成工具,包含tinyint处理,自动获取数据库注释

    默认情况下,MBG可能会将`TINYINT(1)`视为Java的`boolean`类型,但有时这并不符合所有情况,因为`TINYINT`可以存储范围从-128到127的整数值。因此,MBG可能提供了一个定制化的方式,允许开发者自定义如何处理`...

    MySql所有字段类型及长度范围

    - **TINYINT[(M)][UNSIGNED][ZEROFILL]**:TINYINT 类型用于存储小整数,当没有指定 UNSIGNED 时,其取值范围为 -128 到 127;若指定了 UNSIGNED,则取值范围变为 0 到 255。 - **SMALLINT[(M)][UNSIGNED][ZEROFILL]...

    Java数据类型与各数据库类型映射一览表

    Java数据类型与各数据库类型映射...本资源对于了解 Java 数据类型和数据库类型之间的映射关系非常有用,特别是在开发涉及到数据库交互的应用程序时。同时,本资源也可以作为数据库管理系统和 Java 开发相关的参考文献。

    mysql数据库全部字段类型

    BIGINT 大整数,带符号的范围是-...BIT 位字段类型,范围为从1到64,默认为1 BLOB 最大长度为65,535(216–1)字节的BLOB列 BOOL 是TINYINT(1)的同义词。zero值被视为假。非zero值视为真 CHAR 固定长度字符串

    数据类型关系映射表

    - **解释**:虽然 MySQL 中的 `TINYINT` 类型通常表示较小的整数,但在 JDBC 中映射为 `SMALLINT`。 - **注意事项**:转换时应注意数值范围的调整,确保不会发生溢出或数据丢失。 #### Oracle 数据类型与 JDBC ...

    根据表名创建实体类的字段和属性.(单个表生成)存储过程快速生成

    根据给定文件的信息,我们可以深入探讨“根据表名创建实体类的字段和属性”这一主题。这主要涉及数据库与编程语言之间的桥接技术,尤其是在基于SQL Server的环境中使用存储过程来自动化这一过程。 ### 主题概述 在...

    MySql数据库的列类型(字段类型).pdf

    MySQL 数据库中的列类型,也就是字段类型,是数据库设计中的关键元素,决定了数据的存储方式和处理方式。列类型分为三大类:数值类、字符串类和日期/时间类。 数值类数据列类型主要包括整型和浮点型。整型又分为 ...

    SQL字段类型

    本文主要探讨了C#中常见的几种字段类型,包括字符类型、日期时间类型、整数类型以及浮点数和数值类型。 1. 字符类型: - `char` 和 `varchar`:两者都是用于存储字符串数据。`char`是定长字符数据类型,固定长度的...

    Hibernate类型映射

    在Hibernate中,类型映射是至关重要的概念,因为它负责将Java对象的属性与数据库表中的列进行对应。下面我们将详细探讨Hibernate中的类型映射以及其与Java类型和标准SQL类型的对应关系。 1. `integer`:在Hibernate...

    MySQL字段类型列表

    在设计数据库表结构时,选择合适的字段类型至关重要,因为它直接影响到数据的存储效率、查询速度以及数据库的整体性能。合理地使用字段类型,可以有效节省存储空间,提高查询效率,并确保数据的准确性。在实际应用中...

    MySQL字段类型说明

    MySQL 字段类型说明 MySQL 是一个功能强大且广泛使用的关系型数据库管理系统,它支持大量的列类型,可以被分为数字类型、日期和时间类型以及字符串(字符)类型。本节对 MySQL 字段类型进行了详细的说明,包括每个...

Global site tag (gtag.js) - Google Analytics