MySQL中的数据类型和Java中的对应

Posted 吴凯伟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL中的数据类型和Java中的对应相关的知识,希望对你有一定的参考价值。

背景

     小编最近接触了mysql数据库表反射生成java实体类(POJO)和映射文件(xml文件),使用Netbeans上的jeddict插件生成JPA(JPA是Java Persistence API的简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表的映射关系,并将运行期的实体对象持久化到数据库中)的图表,在敲代码的过程中发现了entity层属性的数据类型悄悄发生而来改变,原来Mysql和java的数据类型是有对应关系的。

正文

 一、类型对应表

             技术图片

              

   注意:Mysql中int 和 integer 同义,他们都对应着java中的long类型。

 二 、int、bigint、mediumint、smallint、tinyint的比较

              技术图片

             

 三、易错点

         在做机房的时候,会以为int(4)只能存储4个长度的数字,int(11)就会存储11个长度的数字,这是错误的。

        实际上int(n)所占多少存储空间并无任何关系。int(3)、int(4)、int(8) 在磁盘上都是占用 4 btyes 的存储空间。说白了,除了显示给用户的方式有点不同外,int(M) 跟 int 数据类型是相同的。

   举例:

           int 的值是10 (指定zerofill)

           int(8)的显示结果为 00000010 (左边填充8个0)

           int(5)的显示结果为 00010(左边填充3个0)

            只是显示的长度不一样而已,都是占用四个字节的空间。

            对于其他类型(n)中的n也同样适用,n 代表的并不是存储在数据库中的具体长度,如果设定了zerofill属性,当数据的宽度小于设定的宽度时(2<8),则自动填充0,这只是最后显示的结果(一种格式化输出),但是在Mysql中实际存储的还是10。

总结

       在了解数据类型的知识时,发现各种ORM对应的数据类型还是有一些区别的;同时觉得我总是会把我不熟悉的东西想的很难很难,其实都是自己给自己设的坎儿~~迈过去就好了!

        感谢您的阅读,如有不完善之处,还望指教!

以上是关于MySQL中的数据类型和Java中的对应的主要内容,如果未能解决你的问题,请参考以下文章

mysql中的longblob对应java中的啥类型

MySql数据库类型bit等与JAVA中的对应类型布尔类型怎么存

Sql Server中的数据类型和Mysql中的数据类型的对应关系(转)

java中一个对象的属性为String 在mysql中对应text列 表有该列数据,可是读取该列的时候为null,求解决方法

sqlserver数据库类型对应Java中的数据类型

mysql有布尔类型吗?