`

关于 MySQL 的 boolean 和 tinyint(1)

 
阅读更多

boolean类型
MYSQL保存BOOLEAN值时用1代表TRUE,0代表FALSE,boolean在MySQL里的类型为tinyint(1),
MySQL里有四个常量:true,false,TRUE,FALSE,它们分别代表1,0,1,0,
mysql> select true,false,TRUE,FALSE;
+------+-------+------+-------+
| TRUE | FALSE | TRUE | FALSE |
+------+-------+------+-------+
|    1 |     0 |    1 |     0 |
+------+-------+------+-------+
可以如下插入boolean值:insert into [xxxx(xx)] values(true),当然也可以values(1);
举例如下:
mysql> alter table test add isOk boolean;
Query OK
mysql> desc test;
+-------+-------------+------+-----+---------+----------------+
| Field | Type        | Null | Key | Default | Extra          |
+-------+-------------+------+-----+---------+----------------+
| id    | int(11)     | NO   | PRI | NULL    | auto_increment |
| isOk  | tinyint(1)  | YES  |     | NULL    |                |
+-------+-------------+------+-----+---------+----------------+
mysql> insert into test(isOk) values(true);
Query OK
mysql> select isOk from test ;
+------+
| isOk |
+------+
|    1 |
+------+
=================

 MySQL没有boolean类型。这也是比较奇怪的现象。例:
create table xs
(
   id int primary key,
   bl boolean
)
这样是可以创建成功,但查看一下建表后的语句,就会发现,mysql把它替换成tinyint(1)。也就是说mysql把boolean=tinyInt了,但POJO类要定义成什么类型呢?
因为惯性思维,在java类中也把它定义成type。然后在Struts中使用<s:check/>标签。这就产生一个严重的问题了。<s:check>是boolean,而POJO去定义成byte。这样数据永远也无法提交,被struts的intercept拦截掉了。解决办法是在POJO类中定义成boolean,在mysql中定义成tinyint(1)
 
------
 TINYINT(1) or ENUM( 'true' , 'false')
-------
0
0
分享到:
评论

相关推荐

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

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

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

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

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

    下面是一系列SQL语句,它们分别针对不同的表和字段,将其类型从`TINYINT(1)`更改为更合适的`BOOLEAN`或`TINYINT`类型(取决于具体需求): ```sql ALTER TABLE JBPM_PROCESSDEFINITION MODIFY IS_...

    java实体转mysql建表语句

    - `boolean`和`Boolean`对应`TINYINT`。 - `Date`和`Timestamp`对应`DATE`,`TIME`或`TIMESTAMP`。 7. **注解驱动的实体类**: 使用JPA的注解,如`@Entity`(标识实体类)、`@Table`(指定表名)、`@Id`(主键)...

    java_mysql_数据类型对照.doc

    - **BOOLEAN类型**:尽管MySQL中使用TINYINT来表示布尔值,但在Java中使用`java.lang.Boolean`更加直观,特别是在Web开发中,这种映射简化了前端与后端之间的数据交互。 - **整型与浮点型**:选择合适的数据类型对...

    MYSQL常见问题及解答

    - **`BOOL` 和 `BOOLEAN`:** 在 MySQL 中,这两个关键字实际上是别名,表示 `TINYINT(1)` 类型,这意味着它们只能存储 0 或 1,分别代表 false 和 true。 - **注意:** 尽管 `BOOL` 和 `BOOLEAN` 在 SQL 标准中被...

    mysql 入门级操作

    5. **布尔类型**:`BOOLEAN`,在MySQL中通常等同于`TINYINT(1)`。 创建数据库是MySQL操作的第一步。使用`CREATE DATABASE`语句可以创建新的数据库,例如: ```sql CREATE DATABASE my_database; ``` 接着,可以使用...

    云平台开发人员MySQL数据库知识手册

    MySQL 数据库中的数据基本类型包括 BIT、TINYINT、BOOL、BOOLEAN 等。BIT 是一个整数类型,TINYINT 是一个很小的整数类型,BOOL 和 BOOLEAN 是布尔类型。 HELP 命令 HELP 命令是 MySQL 数据库中的一个重要命令,...

    mysql中文帮助文档

    MySQL是一种广泛使用的开源关系型数据库管理系统(RDBMS),它以其高效、稳定和易于扩展的特性深受开发者喜爱。本文将基于“MySQL中文帮助文档”这一主题,深入探讨MySQL的基础概念、核心功能以及常见操作,旨在为...

    Mysql建表语句转化为postgre语句

    - MySQL中的`TINYINT`在PostgreSQL中可以使用`SMALLINT`或`BOOLEAN`(如果仅用作布尔值)。 - `VARCHAR`在MySQL中没有明确的最大长度限制,但在PostgreSQL中需要指定最大长度。 - `DATE`, `TIME`, `DATETIME`在...

    MySql于Java数据类型对应列表

    ### MySQL与Java数据类型对应详解 #### 概述 在进行数据库操作时,尤其是在使用Java进行MySQL数据库开发的过程中,正确地映射数据类型是至关重要的一步。本文将详细介绍MySQL中的各种数据类型及其在Java中的对应...

    10-12MySQL.zip

    MySQL支持多种数据类型,如整数(INT、TINYINT等)、浮点数(FLOAT、DOUBLE)、字符串(VARCHAR、CHAR)、日期和时间(DATE、TIME、DATETIME、TIMESTAMP)以及布尔值(BOOLEAN)。 三、索引 索引可以显著提高查询...

    数据库Mysql基础知识总结

    - **布尔型(Boolean)**: BOOLEAN或TINYINT(1),表示逻辑值。 ### 3. 数据库基本知识 在`数据库基本知识.txt`中,涵盖了以下内容: - **创建数据库**: 使用`CREATE DATABASE`语句创建新的数据库。 - **选择...

    MySql基础知识总结

    5. 布尔型(Boolean):BOOLEAN或TINYINT(1)表示。 三、SQL基础 1. SELECT语句:用于从数据库中查询数据,例如`SELECT * FROM table_name`。 2. INSERT语句:用于向表中插入新记录,例如`INSERT INTO table_name ...

    MYSQL经典基础教程.ppt

    BOOL或BOOLEAN类型实际上是TINYINT的别名,用于表示逻辑值。位类型BIT(M)可以存储M位的二进制数据。 在实践中,了解并熟练掌握这些基础知识是成为合格的MySQL用户的关键。通过本教程的学习,你可以开始创建自己的...

    MYSQL基础复习资料(上)

    1. mysql是一种关系型数据库管理系统,广泛应用于各种web应用程序中。 2. mysql支持多种数据类型,包括整数、字符串、日期、时间等。 3. SQL语句是用于管理关系型数据库的标准语言,包括SELECT、INSERT、UPDATE、...

    云平台开发技术人员MySQL数据库知识参考手册.doc

    第2章则深入探讨了各种数据类型,如BIT、TINYINT、BOOL和BOOLEAN等数值类型,还包括VARCHAR、TEXT、DATE和TIMESTAMP等字符串和时间类型,这些是构建数据库表结构的基础。 进阶篇(第3~9章)涵盖了更复杂的主题,...

    MySQL数据库应用案例视频教程下载第5讲 数据类型和运算符.zip

    5. 布尔类型:BOOLEAN,等同于TINYINT(1),用于存储真或假值。 了解这些数据类型后,我们还需要掌握如何在SQL语句中正确使用它们,以及它们在实际场景中的应用,比如选择适合的数据类型可以优化存储空间和查询性能...

    MySQL笔记、面试题

    以下是一些关于MySQL的重要知识点,这些内容可能来自于提供的“MySQL笔记、面试题”文本文件。 1. 数据库基础概念: - 数据库:存储和管理数据的系统,如MySQL。 - RDBMS:关系型数据库管理系统,基于表格的数据...

Global site tag (gtag.js) - Google Analytics