0
点赞
收藏
分享

微信扫一扫

hibernate 类型

求索大伟 2023-07-19 阅读 81



Hibernate的类型映射类型从总体上可以分为两种:内置类型映射和客户类型映射。内置类型映射负责把一些常见的java类型映射到sql类型:此外,Hibernate还允许用户实现UserType或CompositeUserType接口,来灵活的制定客户化映射类型。客户类型映射可以将用户定义的java类映射到数据库表的相应字段。


内置类型映射:


(1)   Java 基本类型的 Hibernate 映射:


2.1 列出了 Hibernate 中的映射类型和与其对应的 Java 类型以及对应的标准 SQL 类型和相应的说明。


 


2.1


Hibernate映射类型

Java类型

标准SQL类型

说明

integer或者int

int或者java.lang.Integer

INTEGER

4字节

long

long或者java.lang.Long

BIGINT

8字节

short

short或者java.lang.Short

SMALLINT

2字节

byte

byte或者java.lang.Byte

TINYINT

1字节

float

float或者java.lang.Float

FLOAT

4字节,单精度浮点数

double

double或者java.lang.Double

DOUBLE

8字节,双精度浮点数

big_decimal

java.math.BigDecimal

NUMERIC

NUMERIC(8,2)表示共8位数字,其中两位是小数

character

char或者java.lang.Character,java.lang.String 

CHAR(1)

定长字符

string

java.lang.String

VARCHAR

变长字符

boolean

boolean或者java.lang.Boolean

BIT

布尔类型

yes_no

boolean或者java.lang.Boolean

CHAR(1)(‘Y’ 或者’N’)

布尔类型

true_false

boolean或者java.lang.Boolean

CHAR(1)(‘T’ 或者’F’)

布尔类型

     

Hibernate映射类型



Java类型



标准SQL类型



说明



integer或者int



int或者java.lang.Integer



INTEGER



4字节



long



long或者java.lang.Long



BIGINT



8字节



short



short或者java.lang.Short



SMALLINT



2字节



byte



byte或者java.lang.Byte



TINYINT



1字节



float



float或者java.lang.Float



FLOAT



4字节,单精度浮点数



double



double或者java.lang.Double



DOUBLE



8字节,双精度浮点数



big_decimal



java.math.BigDecimal



NUMERIC



NUMERIC(8,2)表示共8位数字,其中两位是小数



character



char或者java.lang.Character,java.lang.String 



CHAR(1)



定长字符



string



java.lang.String



VARCHAR



变长字符



boolean



boolean或者java.lang.Boolean



BIT



布尔类型



yes_no



boolean或者java.lang.Boolean



CHAR(1)(‘Y’ 或者’N’)



布尔类型



true_false



boolean或者java.lang.Boolean



CHAR(1)(‘T’ 或者’F’)



布尔类型



  


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


  Java 中,代表时间和日期的类型包括: java.util.Date java.util.Calendar 。此外在 JDBC API 中还提供了三个扩展了 java.util.Date 类的子类: java.sql.Date java.sql.Time 以及 java.sql.Timestamp, 这三个类分别和标准 sql 类型中的 DATE,TIME,TIMESTAMP 相对应。


 


2.2 列出了 Hibernate 中的映射类型和与其对应的 Java 日期类型以及对应的标准 SQL 类型和相应的说明。


2.2


映射类型

Java类型

标准SQL类型

说明

date

java.util.Date或者java.sql.Date

DATE

代表日期:形势为YYYY-MM-DD

time

java.util.Date或者java.sql.Time

TIME

代表时间:形式为HH:MM:SS

timestamp

java.util.Calendar

TIMESTAMP

代表时间和日期,形式为YYYYMMDDHHMMSS

calendar

同上

同上

同上

calendar_date

java.util.Calendar

DATE

代表日期:形势为YYYY-MM-DD

 

映射类型



Java类型



标准SQL类型



说明



date



java.util.Date或者java.sql.Date



DATE



代表日期:形势为YYYY-MM-DD



time



java.util.Date或者java.sql.Time



TIME



代表时间:形式为HH:MM:SS



timestamp



java.util.Calendar



TIMESTAMP



代表时间和日期,形式为YYYYMMDDHHMMSS



calendar



同上



同上



同上



calendar_date



java.util.Calendar



DATE



代表日期:形势为YYYY-MM-DD



 


字段类型映射配置事例:


<property name=”name” column=”Name” type=”string”/> 

 
 
  <property name=”birthday” column=”Brithday” type=”date”/> 

 
 
  <property name=”registereddate” column=”Registereddate” type=”timestamp”/>


下图为以上配置对应的数据库表 :


Name          varchar2(20) 


 


Birthday       DATE


 


Registereddate Timestamp

 



 

 

Name          varchar2(20)





Birthday       DATE






Registereddate Timestamp









 


3、 JDK 自带的个别 Java 类的 Hibernate 映射类型:


2.3 列出了个别 Java 类的 Hibernate 映射类型,与此对应的标准 SQL 类型均为 VARCHAR 类型。


 


2.3


映射类型

Java类型

标准SQL类型

class

java.lang.Class

VARCHAR

locale

java.util.Locale

VARCHAR

timezone

java.util.TimeZone

VARCHAR

currency

java.util.Currency

VARCHAR

映射类型

Java类型

标准SQL类型

class

java.lang.Class

VARCHAR

locale

java.util.Locale

VARCHAR

timezone

java.util.TimeZone

VARCHAR

currency

java.util.Currency

VARCHAR

举报

相关推荐

0 条评论