📜  Hibernate – 映射类型

📅  最后修改于: 2022-05-13 01:54:48.302000             🧑  作者: Mango

Hibernate – 映射类型

Hibernate 是一个Java框架,可简化Java应用程序与数据库交互的开发。它是一个开源、轻量级的 ORM(对象关系映射)工具。 Hibernate 实现了 JPA (Java Persistence API) 的规范来进行数据持久化。

我们维护不同的关系以在关系数据库模型中的不同数据库表之间建立链接。这些关系是一对一、一对多和多对多的。类似的概念正在hibernate中安装。在这里,hibernate 将Java语言链接到数据库表,通过这个链接我们可以建立关系/映射。

映射的主要基本类型是:

  1. 原始类型
  2. 日期和时间类型
  3. 二进制和大对象类型
  4. JDK 相关的类型

因此,让我们详细讨论上面列出的 4 种映射类型,如下所示:

A. 原始类型 

这些映射类型的数据类型定义为“integer”、“字符”、“float”、“字符串”、“double”、“Boolean”、“short”、“long”等。这些存在于 hibernate 框架中以映射Java数据类型到 RDBMS 数据类型。

Mapping TypeJava TypeANSI SQL Type
integerint or java.lang.IntegerINTEGER
characterjava.lang.StringCHAR(1)
floatfloat or java.lang.FloatFLOAT
stringjava.lang.StringVARCHAR
doubledouble or java.lang.DoubleDOUBLE
booleanboolean or java.lang.BooleanBIT
shortshort or java.lang.ShortSMALLINT
longlong or java.lang.LongBIGINT
bytebyte or java.lang.ByteTINYINT
big_decimaljava.math.BigDecimalNUMERIC

B. 日期和时间

它们是“日期”、“时间”、“日历”、“时间戳”等。与原始数据一样,我们有这些日期和时间数据类型映射。

Mapping typeJava typeANSI SQL Type
datejava.util.Date or java.sql.DateDATE
timejava.util.Date or java.sql.TimeTIME
calendarjava.util.CalendarTIMESTAMP
timestampjava.util.Date or java.sql.TimestampTIMESTAMP
calendar_datejava.util.CalendarDATE

C. 二进制和大对象

这些类型是“clob”、“blob”、“binary”、“text”等。存在 Clob 和 blob 数据类型以维护大型对象(如图像和视频)的数据类型映射。

Mapping typeJava typeANSI SQL Type
clobjava.sql.ClobCLOB
blobjava.sql.BlobBLOB
binarybyte[]VARBINARY (or BLOB)
textjava.lang.StringCLOB
serializableany Java class that implements java.io.SerializableVARBINARY (or BLOB)

D. JDK 链接

一些超出先前类型映射范围的对象映射包含在此类别中。它们是“类”、“语言环境”、“货币”、“时区”。

Mapping typeJava typeANSI SQL Type
classjava.lang.Class VARCHAR
localejava.util.LocaleVARCHAR
currencyjava.util.CurrencyVARCHAR
timezonejava.util.CurrencyVARCHAR