Mysql中tinyint与Java数据类型对应关系
- Mysql中,如果使用tinyint(1)来设置表中字段的数据类型,可以存储0和1;在Java中使用Boolean来接收,0映射为false,1映射为true。
- Mysql中,如果使用tinyint来设置字段的数据类型,映射到Java数据类型中,不仅可以使用上面的Boolean类型来接收,也可以使用Java中int类型来接收。在MySQL中存储的tinyint(1)类型数据,不仅可以存储0和1,任意一个一位自然数都可以(0-9)。不过,当这样(tinyint(1))使用时,0映射为Java中的Boolean类型false,1-9数字都将映射为true。
- tinyint(1)与tinyint(4)的区别:tinyint默认的位数是4位,但是我们设计数据库就算设置成tinyint(1)[(1)表示数据以一个长度来显示],但也不能影响它实际占了4个存储空间。tinyint(1) 和 tinyint(4)中的1和4只有字段指定zerofill(零填充)时才有效,不足位数用0来填充。其实他们的存储空间大小是一样的。如tinyint(4),如果实际值是2,如果列指定了zerofill,查询结果就是0002,左边用0来填充。
- 非0和1存储场景:
字段:status(值为1,2,3,4)
类型:tinyint 长度:1(有符号的)
实际结果:查询出来的数据列表,状态值不管是1、2、3还是4,都是"boolean true"
期望结果:单纯的查询出数据列表取出数字。
问题分析:
由于MySql中没有boolean类型,所以会用到tinyint[1]类型来表示,在mysql中boolean=tinyint[1]
解决方式:
tinyint类型长度设置问题,当我把长度改成4时,查询结果就是我的期望结果了。
其他思路:
在不改变类型长度下,修改查询sql语句,在需要执行的sql语句中,把这个状态字段*1,结果就会得到数据库存的值了(ps:要给这个修改后的状态字段加别名,不然查询出来的就是status*1 => ‘1’)
总结:
- 只存储0和1,表示true或false,则使用tinyint(1)
- 存储状态信息1、2、3、4等,为使查询出的数据是原始的数字,有两种方式:
A、修改tinyint类型的长度,使用tinyint(4)
B、在查询的sql语句上面做修改所以由这里可以看出,当使用tinyint(1)来存储超过0,1两个以外的值,比如存储2,那这个2就是脏数据。如果要2有效,就用tinyint(4)。tinyint(1)只适用于存储0和1两个值,也即真和假,true和false。
一般情况,如果存的是纯数字的话,建议用tinyint,如果是字符串,且是固定长度的,建议用char。
bit & tinyint:
两者都可以表示Java中的布尔值。
如果没有扩展需求,仅仅表示逻辑true或false的话,bit是首选;
如果有扩展需求,以后可能不仅仅是逻辑布尔两个值的话,就用tinyint(4)(长度根据业务来调整)。
Mysql中tinyint与Java数据类型对应关系相关推荐
- Mysql中Bigint与Java数据类型对应关系
MySQL中,有符号类型 Bigint(20)的取值范围为-9223372036854775808~9223372036854775807,与Java.lang.Long的取值范围完全一致,mybat ...
- delphi与java_Delphi XE8中Delphi和JAVA数据类型对应关系!
Delphi XE8中Delphi和JAVA数据类型对应关系所在单元文件:Androidapi.JNI.JavaTypes 对应关系: JObject = interface;//java.lang. ...
- 理解误区——mysql中tinyint与Java的数据类型的对应关系;tinyint(1) 与tinyint(4)的区别
理解误区1 在最初学习Java和MySQL的时,一直使用的是Boolean来接受tinyint类型的数据.具体操作:在数据库中设置TINYINT(1),存储0和1:在Java中使用boolean ...
- MySQL数据类型和Java数据类型对应关系表
MySql 数据类型和 Java 数据类型之间的转换是很灵活的. 一般来讲,任何 MySql 数据类型都可以被转换为一个 java.lang.String,任何 MySql 数字类型都可以被转换为任何 ...
- 总结java数据类型和mysql、oracle、pgsql数据类型对应关系,附数据库字段类型转java类型代码
java的基本数据类型有八种: byte.short.int.long.float.double.char.boolean 总结java和mysql.oracle.pgsql数据类型对应关系 java ...
- MySQL与Java数据类型对应关系
MySQL与Java数据类型对应关系 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) VARCHAR L+N VARCHAR java.lang.String 12 CHAR ...
- MySql中 tinyint ,smallint,mediumint,int,bigint 与 decimal
MySql中 tinyint,smallint,mediumint,int 与 bigint 一.容纳数据范围不同 1.tinyint(M) M默认为4,存储占1个字节 带符号的范围是-128到127 ...
- 下列( )类型不是mysql中的数据类型_下列( )类型不是MySQL中常用的的数据类型。_学小易找答案...
[单选题]下面哪个坐标系不属于在椭球面上表示点位置的坐标系统. [简答题]2.根据形体的两面投影,补绘其第三面投影(尺寸可由图上直接量取). (1) (2) (3) (4) (5) (6) (7) ( ...
- 以下不属于mysql列类型的是什么意思_下列 ________ 类型不是 MySQL 中常用的的数据类型。_学小易找答案...
[简答题]工作区跳线的制作 请依据EIA568国际标准,制作一根直通线(即两端都是EIA568B线芯排布规律) 做好网线后,请拍照上传作业. [单选题]UNIQUE 惟一索引的作用是 ( ) : [简 ...
最新文章
- Get Started with Omni-Channel
- python django mysql安装_Django+Nginx+uWSGI+Mysql搭建Python Web服务器
- boost::hana::list用法的测试程序
- MYSQLl数据库 表的操作
- CF407 E. k-d-sequence
- 获得的经验:ActiveMQ,Apache Camel和连接池
- JDK8的JVM优化实操及部分原理加深理解
- 你大爷还是你大爷!三星震撼首发折叠屏智能手机Galaxy Fold
- 计算机日常知识试题,计算机基础知识及日常维护测试题
- Windows10 中在指定目录下启动Powershell
- 【图文】在windows7 下安装和配置Memcached 64-bit for Windows
- Qt自带mingw使用
- python:find_peaks
- 1一10到时的英文单词_1英语(1到10的英语单词)
- 【leetcode】电话号码的字母组合
- 报错:Cannot use v-for on stateful component root element because it renders multiple elements.
- 路肩石水渠机在施工公路项目中工艺特点的匹配
- VS Code + phpstudy实现PHP环境配置
- Ros:people包下子包leg_detector及其相关包笔记
- 苹果系统和安卓系统的区别_#你喜欢苹果系统还是安卓系统?
热门文章
- vscode Nuget Package Manager 提示 Versioning information could not be retrieved from the NuGet package
- html5 导航栏颜色怎么修改
- android是手机自拍,安卓6大摄影手机推荐,给喜欢自拍的你
- stm32 中断处理
- qt 自定义按钮图标
- 我的创作纪念日——不忘初心
- 三星android更新,三星Android 10更新时间表来啦!共28款机型
- python合并排序数组
- doFilter不生效的原因
- python crypt模块_Python的加密模块md5、sha、crypt使用实例