此时情绪此时天,无事小神仙
好好生活,平平淡淡每一天

编辑

Hibernate 数据类型映射关系

Java 基本类型的 Hibernate 映射

标准SQL类型 大小和取值范围 映射类型 Java类型
INTEGER 4字节 integer或者int int或者java.lang.Integer
BIGINT 8字节 long long or java.lang.Long
SMALLINT 2字节 short short or java.lang.Short
TINYINT 1字节 byte byte or java.lang.Byte
FLOAT 4字节 float float or java.lang.Float
DOUBLE 8字节 double double or java.lang.Double
NUMERIC NUMERIC(8,2)8位 big_decimal java.math.BigDecimal
CHAR(1) 定长字符 character char Character java.lang.String
VARCHAR 变长字符串 string java.lang.String
BIT 布尔类型 boolean boolean or java.lang.Boolean
CHAR(1)(Y-N) 布尔类型 yes_no boolean or java.lang.Boolean
CHAR(1)(T-F) 布尔类型 true_false boolean or java.lang.Boolean

Java 时间和日期类型的 Hibernate 映射

标准SQL类型 描述 映射类型 Java类型
DATE YYYY-MM-DD date java.util.Date or java.sql.Date
TIME HH:MM:SS time java.util.Date or java.sql.Time
TIMESTAMP YYYYMMDDHHMMSS timestamp java.util.Date or java.sql.Timestamp
TIMESTAMP YYYYMMDDHHMMSS calendar java.util.Calendar
DATE YYYY-MM-DD calendar/date java.util.Calendar

Java 大对象类型的 Hibernate 映射

标准SQL类型 MySQL 类型 Oracle 类型 映射类型 Java类型
VARBINARY( 或 BLOB) BLOB BLOB binary byte[]
CLOB TEXT CLOB text java.lang.String
VARBINARY( 或 BLOB) BLOB BLOB serializable java.io.Serializable的任何实例
CLOB TEXT CLOB clob java.sql.Clob
BLOB BLOB BLOB blob java.sql.Blob
VARCHAR class java.lang.Class
VARCHAR locale java.util.Locale
VARCHAR timezone java.util.TimeZone
VARCHAR currency java.util.Currency

数据库整数型描述

INT 类型 类型的实际含义 描述
tinyint(m) 8位整数

占用1个字节

(-128 ~ +127)
TINYINT的取值范围是从-128 ~ +127,如果使用了UNSIGNED属性,那么它的取值范围就变成了0 ~ +255。

如果用户试图存入超过字段取值范围的数字,MYSQL所做的工作就非常简单,它会直接替换成最大可取值或最小可取值。

tinyint(m)括号中的m,指的是最大"显示"宽度。
smallint(m) 16位整数

占用2个字节

(-32768~+32767)
medimumint(m) 24位整数

占用3个字节

(-8388608~+8388607)
int(m),integer(m) 32位整数

占用4个字节

(-2147483648~+2147483647)
bigint(m) 64位整数

占用8个字节

(-9.22E+18 ~ +9.22E+18)
serial bigint auto_increment not null primary key 的简写 serial含义里的auto_increment,代表了该字段是自增字段。

即,往有该属性的字段里插数据时,系统会自动把该字段的当前最大值加上1后存进去。

一般而言,该属性往往用于主键字段。

在使用该属性时应当注意以下几个问题:

1、该属性必须与NOT NULL、primary Key 或者 Unique属性同时使用。

2、每个数据表只能存有一个auto_increment属性的数据列

3、该属性一般是在进行数据插入时,没有明确指定值或者指定值为NULL时,才起作用。如果指定了值,并且该值还没有出现过,MYSQL将使用该值插入,以生成一条新记录。这时候就有两种情况:
a) 原有的数据是1100,后来删除了2080的内容,即数据库里只存在119,81100的数据,当插入ID为20的数据时,数据库还是会按照规则,把20这条记录插进去,并不会报错,自增值仍然是100,下次正常插入时,还是会默认使用101这个值。
b) 原有的数据是1~100,我插入ID为1000的数据时,不会报错,但自增值变为1000,下次插入数据从1001起算。

参考 Mysql 数据类型:https://www.cnblogs.com/mjtabu/p/12885043.html
posted @ 2020-04-28 18:30  踏步  阅读(481)  评论(0编辑  收藏  举报