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)。
分享到:
相关推荐
这是因为在MyBatis中,对于tinyint(1)字段,它会将其映射为jdbcType=BIT,即使设置了`tinyInt1isBit=false`,也无法改变这一行为,因为BIT类型与Integer的映射冲突。 为了解决这个问题,有两种主要方法: 1. **...
默认情况下,MBG可能会将`TINYINT(1)`视为Java的`boolean`类型,但有时这并不符合所有情况,因为`TINYINT`可以存储范围从-128到127的整数值。因此,MBG可能提供了一个定制化的方式,允许开发者自定义如何处理`...
需要注意的是,在将`TINYINT(1)`转换为`BOOLEAN`类型时,MySQL会自动将非零值转换为`TRUE`,零值转换为`FALSE`。如果原来的`TINYINT(1)`字段中存储了除0和1之外的其他数值,则在转换前应先进行数据清理或转换,以...
- **`BOOL` 和 `BOOLEAN`:** 在 MySQL 中,这两个关键字实际上是别名,表示 `TINYINT(1)` 类型,这意味着它们只能存储 0 或 1,分别代表 false 和 true。 - **注意:** 尽管 `BOOL` 和 `BOOLEAN` 在 SQL 标准中被...
MySQL 数据库中的数据基本类型包括 BIT、TINYINT、BOOL、BOOLEAN 等。BIT 是一个整数类型,TINYINT 是一个很小的整数类型,BOOL 和 BOOLEAN 是布尔类型。 HELP 命令 HELP 命令是 MySQL 数据库中的一个重要命令,...
- **BOOLEAN类型**:尽管MySQL中使用TINYINT来表示布尔值,但在Java中使用`java.lang.Boolean`更加直观,特别是在Web开发中,这种映射简化了前端与后端之间的数据交互。 - **整型与浮点型**:选择合适的数据类型对...
- `boolean`和`Boolean`对应`TINYINT`。 - `Date`和`Timestamp`对应`DATE`,`TIME`或`TIMESTAMP`。 7. **注解驱动的实体类**: 使用JPA的注解,如`@Entity`(标识实体类)、`@Table`(指定表名)、`@Id`(主键)...
本文将详细介绍MySQL中的各种数据类型及其在Java中的对应类型,并解释这些类型的具体含义以及它们在实际应用中的作用。 #### 数据类型对照表解析 ##### 1. VARCHAR (可变长度字符串) **显示长度:** L+N **数据库...
5. **布尔类型**:`BOOLEAN`,在MySQL中通常等同于`TINYINT(1)`。 创建数据库是MySQL操作的第一步。使用`CREATE DATABASE`语句可以创建新的数据库,例如: ```sql CREATE DATABASE my_database; ``` 接着,可以使用...
以上是对MySQL的一些基础知识点的介绍,更详细的内容可以通过“MySQL中文参考手册”进行学习。该手册将涵盖这些概念的详细解释,以及各种操作的示例,对于初学者来说是非常宝贵的资源。在实际操作中,结合手册与实践...
1. mysql是一种关系型数据库管理系统,广泛应用于各种web应用程序中。 2. mysql支持多种数据类型,包括整数、字符串、日期、时间等。 3. SQL语句是用于管理关系型数据库的标准语言,包括SELECT、INSERT、UPDATE、...
- MySQL中的`TINYINT`在PostgreSQL中可以使用`SMALLINT`或`BOOLEAN`(如果仅用作布尔值)。 - `VARCHAR`在MySQL中没有明确的最大长度限制,但在PostgreSQL中需要指定最大长度。 - `DATE`, `TIME`, `DATETIME`在...
MySQL支持多种数据类型,如整数(INT、TINYINT等)、浮点数(FLOAT、DOUBLE)、字符串(VARCHAR、CHAR)、日期和时间(DATE、TIME、DATETIME、TIMESTAMP)以及布尔值(BOOLEAN)。 三、索引 索引可以显著提高查询...
包括整数(如TINYINT、INT、BIGINT)、浮点数(如FLOAT、DOUBLE)、字符串(如VARCHAR、TEXT)、日期和时间(如DATE、TIME、DATETIME、TIMESTAMP)以及布尔类型(BOOLEAN)等。 14. **如何显示MySQL中的所有表?**...
5. 布尔型(Boolean):BOOLEAN或TINYINT(1)表示。 三、SQL基础 1. SELECT语句:用于从数据库中查询数据,例如`SELECT * FROM table_name`。 2. INSERT语句:用于向表中插入新记录,例如`INSERT INTO table_name ...
- **布尔型(Boolean)**: BOOLEAN或TINYINT(1),表示逻辑值。 ### 3. 数据库基本知识 在`数据库基本知识.txt`中,涵盖了以下内容: - **创建数据库**: 使用`CREATE DATABASE`语句创建新的数据库。 - **选择...
- BOOLEAN或BOOL:等同于TINYINT(1),通常用于存储逻辑值,0表示假,非0表示真。 6. 二进制类型: - BINARY:用于存储二进制数据,长度固定。 - VARBINARY:用于存储可变长度的二进制数据,长度不固定。 7. 无...
第1章介绍了如何有效地使用MySQL的帮助系统,包括HELP命令、服务端帮助命令和快速查阅帮助的方法,这些对于日常问题解决至关重要。第2章则深入探讨了各种数据类型,如BIT、TINYINT、BOOL和BOOLEAN等数值类型,还包括...
- **BOOLEAN/BOOL**:实际上也是TINYINT(1),通常用于存储布尔值,其中0代表FALSE,非0值代表TRUE。 - **SMALLINT**:较小的整数类型,带符号范围为-32768到32767,无符号范围为0到65535。 - **MEDIUMINT**:中等...