Hibernate映射类型分为两种:内置映射类型和客户化映射类型。内置映射类型负责把一些常见的Java类型映射到相应的SQL类型;此外,Hibernate还允许用户实现UserType或CompositeUserType接口,来灵活地定制客户化映射类型。客户化类型能够把用户定义的Java类型映射到数据库表的相应字段。
一、Hibernate的内置映射类型
1、Java基本类型的Hibernate映射类型
Hibernate映射类型 |
Java类型 |
标准SQL类型 |
大小和取值范围 |
integer或者int |
int或者java.lang.Integer |
INTEGER |
4字节 |
long |
long Long |
BIGINT |
8字节 |
short |
short Short |
SMALLINT |
2字节 |
byte |
byte Byte |
TINYINT |
1字节 |
float |
float Float |
FLOAT |
4字节 |
double |
double Double |
DOUBLE |
8字节 |
big_decimal |
java.math.BigDecimal |
NUMERIC |
NUMERIC(8,2)8位 |
character |
char Character String |
CHAR(1) |
定长字符 |
string |
String |
VARCHAR |
变长字符串 |
boolean |
boolean Boolean |
BIT |
布尔类型 |
yes_no |
boolean Boolean |
CHAR(1) (Y-N) |
布尔类型 |
true_false |
boolean Boolean |
CHAR(1) (T-F) |
布尔类型 |
2、Java时间和日期类型的Hibernate映射
映射类型 |
Java类型 |
标准SQL类型 |
描述 |
date |
util.Date或者sql.Date |
DATE |
YYYY-MM-DD |
time |
Date Time |
TIME |
HH:MM:SS |
timestamp |
Date Timestamp |
TIMESTAMP |
YYYYMMDDHHMMSS |
calendar |
calendar |
TIMESTAMP |
YYYYMMDDHHMMSS |
calendar_date |
calendar |
DATE |
YYYY-MM-DD |
3、Java大对象类型的Hibernate映射类型
映射类型 |
Java类型 |
标准SQL类型 |
MySQL类型 |
Oracle类型 |
binary |
byte[] |
VARBINARY(或BLOB) |
BLOB |
BLOB |
text |
String |
CLOB |
TEXT |
CLOB |
serializable |
Serializable接口任意实现类 |
VARBINARY(或BLOB) |
BLOB |
BLOB |
clob |
java.sql.Clob |
CLOB |
TEXT |
CLOB |
blob |
java.sql.Blob |
BLOB |
BLOB |
BLOB |
在程序中通过Hibernate来保存java.sql.Clob或者java.sql.Blob实例时,必须包含两个步骤:
l 在一个数据库事务中先保存一个空的Blob或Clob实例。
l 接着锁定这条记录,更新上面保存的Blob或Clob实例,把二进制数据或文本数据写到Blob或Clob实例中。
4、JDK自带的个别Java类的Hibernate映射类型(略)
5、使用Hibernate内置映射类型
二、客户化映射类型(略)
结束!
相关推荐
对于数组和集合,如List、Set、Map等,Hibernate提供了ListType、SetType、MapType等映射类型,可以根据实际需求选择。 此外,自定义对象的映射是Hibernate映射中的一个重要部分。通过在实体类上使用@Entity注解,...
本训练主要关注在使用Hibernate时如何处理与各种数据库字段类型的映射,这对于理解和优化数据库交互至关重要。 首先,我们要理解Hibernate的核心概念——对象关系映射(ORM)。ORM允许我们将数据库表结构映射到Java...
本文将深入探讨如何在Hibernate配置中设置与数据库字段的对应关系,以及相关的Mysql数据库数据类型。 首先,我们需要理解Hibernate的核心配置文件`hibernate.cfg.xml`,在这个文件中,我们定义了数据源、持久化类...
在实际项目中,映射文件(如Hibernate的`hbm.xml`或MyBatis的`Mapper`接口)通常会详细定义每个字段的数据类型、主键、关联关系等信息。这有助于保持代码与数据库结构的一致性,并简化了数据库设计的变化对代码的...
- ORM框架如Hibernate、MyBatis等,能自动处理数据库字段与Java对象之间的映射,包括字段名的转换。它们提供了配置或注解的方式来指定字段的对应关系。 3. **工具**: - 开发者可以使用一些工具,如在线转换器或...
Hibernate,作为Java中广泛使用的对象关系映射(ORM)框架,提供了一种优雅的方式来映射枚举类型到数据库。本文将深入探讨Hibernate如何映射枚举类型,并给出实际应用示例。 ### Hibernate枚举映射方式 #### 1. `@...
2. **注解与数据库字段的映射**: - **@Entity**:标记一个类为数据库中的实体,通常代表一个表。例如,`@Entity(name="User")`表示这个类对应数据库中的"User"表。 - **@Table**:用于更精确地定义实体所对应的...
### Hibernate根据字段生成数据库表 #### 一、概述 在软件开发过程中,特别是在进行多数据库支持的应用程序开发时,我们经常需要将同一套代码部署到不同的数据库系统上。这种情况下,手动为每个数据库创建相同的表...
`@Column` 注解用于指定字段映射到数据库表中的哪一列,并可以指定列的各种属性,例如是否可更新、是否允许为空以及列长度等。例如: ```java @Entity public class Flight implements Serializable { @Column...
hibernate框架在实现自动生成数据库表时,对现有的java字段类型和常用的数据库如(Oracle,MySQL,PostgreSQL)等有对应的字段映射关系,该文件的主要内容就是具体的字段映射情况。
### Hibernate实体映射文件字段设置默认值 在Hibernate框架中,实体映射文件(通常为`.hbm.xml`)用于定义Java对象与数据库表之间的映射关系。这其中包括了属性到数据库表列的映射、主键生成策略、以及一些高级特性...
在Java开发领域,Hibernate是一个非常流行的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式处理数据库操作。本文将深入探讨如何利用Hibernate的映射文件来生成数据库,以此提高开发效率并减少手动创建...
2. **映射文件(Mapping Files)**:.hbm.xml文件定义了数据库表与实体类之间的映射规则,包括字段映射、主键生成策略等。 3. **配置文件(Configuration Files)**:如hibernate.cfg.xml,用于配置数据库连接信息、...
在实际应用中,这也可以扩展到其他ORM(对象关系映射)框架,如Hibernate或MyBatis,它们同样依赖于数据库字段和Java对象的映射。 在压缩包子文件的文件名称列表中,"FieldToRead--属性读写"可能表示的是一个实现此...
描述:“Hibernate与各数据库数据类型的映射” ### Hibernate数据类型映射 Hibernate作为一款流行的Java持久层框架,它提供了丰富的数据类型映射功能,使得开发者能够更加灵活地在Java对象和关系型数据库之间进行...
本项目中提到的"geometry类型与数据库做映射的包"很可能是Hibernate Spatial,它是Hibernate的一个插件,提供了对空间数据类型的支持,使得我们可以将geometry对象无缝地存入支持空间数据的数据库,如PostGIS(基于...
使用注解或XML文件进行映射,定义类属性与数据库字段的对应关系,如主键、外键、索引等。 ### 7. Cascade 和 Lazy Loading `Cascade` 属性允许将操作(如保存、更新、删除)自动应用到关联的对象。`Lazy Loading` ...
在Hibernate中,我们可以创建一个User类,并在对应的User.hbm.xml文件中定义字段到列的映射。 2. **商品实体(Product Entity)**:商品实体包含商品ID、名称、价格、库存等信息。同样,我们需要创建Product类和...
Hibernate集合映射类型 - **List**: 映射为数据库中的列表,元素顺序可以被持久化。 - **Set**: 映射为无序且无重复元素的集合,如HashSet。 - **Bag**: 与List类似,但不保证元素顺序,不推荐使用。 - **Map**: ...