一、怎样映射一个实体
一个实体就是简单
Java
类
-a
Plain Old Java Object (POJO)
,并遵循下列规则:
-
实体类必须标注
@javax.persistence.Entity
注解
(
或者用
XML
描述为一个实体
)
-
@javax.persistence.Id
注解必须使用,指出
a
primary key
-
实体类必须有一个无参的构成函数,并且是
public
或
protected
类型。
-
实体类必须是顶级类。枚举或接口不能成为实体类
-
实体类不能是
final
类型的。实体的方法和变量也不能是
final
的。
-
如果需要远程传输对象,必须实现
Serializable
接口。
我们来看一个最简单的例子:
@Entity
public class Book {
@Id
private Long id;
private String title;
private Float price;
private String description;
private String isbn;
private Integer nbOfPage;
private Boolean illustrations;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public Float getPrice() {
return price;
}
public void setPrice(Float price) {
this.price = price;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public String getIsbn() {
return isbn;
}
public void setIsbn(String isbn) {
this.isbn = isbn;
}
public Integer getNbOfPage() {
return nbOfPage;
}
public void setNbOfPage(Integer nbOfPage) {
this.nbOfPage = nbOfPage;
}
public Boolean getIllustrations() {
return illustrations;
}
public void setIllustrations(Boolean illustrations) {
this.illustrations = illustrations;
}
}
下图表现实体类与数据库映射关系:
二、基于例外的配置
实体类默认映射规则:
1.
实体类名被映射到相同的数据库表名
(
如:
Book
实体被映射到
BOOK
表
)
。如果你需要映射到另一个表名,你需要用
@Table
注释。
2.
属性名被映射到相同的列名
(
如:
id
属性,或者
getId()
方法,被映射到一个
ID
的列名
)
。如果你想要修改默认的映射,你需要使用
@Column
注解。
3.Java
基本数据类型用
JDBC
规则映射数据库数据类型。
String
被映射为
VARCHAR,long
被映射为
BIGINT
,
Boolean
被映射为
SMALLINT
等等。
String
默认映射的列大小为
255(VARCHAR(255)).
注意,默认映射规则根据不同的数据库而不同。例如:
String
在
Mysql
中被映射为为
VARCHAR
,而在
Oracle
中被映射为
VARCHAR2
。
Integer
在
Mysql
中被映射为
INT
,
Oracle
中被映射为
NUMBER
。
根据这些规则,
BOOK
实体类被映射到
Mysql
表,其
DDL
为:
CREATE TABLE `book` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`description` longtext,
`illustrations` bit(1) DEFAULT NULL,
`isbn` varchar(255) DEFAULT NULL,
`nbOfPage` int(11) DEFAULT NULL,
`price` float DEFAULT NULL,
`title` varchar(255) NOT NULL,
PRIMARY KEY (`id`)
)
- 大小: 35.5 KB
分享到:
相关推荐
1. Hibernate概述:Hibernate是一个开放源代码的对象关系映射(ORM)框架,它允许开发人员用面向对象的方式操作数据库。通过提供一种简单的API,Hibernate消除了Java应用程序与传统SQL数据库之间的大部分差异,降低...
- **数据访问集成(Data Access/Integration)**:Spring提供了JDBC抽象层,简化了数据库操作,同时支持ORM(对象关系映射)框架如Hibernate和MyBatis。 - **MVC框架(Model-View-Controller)**:Spring MVC是...
而Hibernate作为持久层框架,简化了数据库操作,提供了ORM(对象关系映射)功能。 SSH框架的整合使得开发者能够更有效地管理应用程序的各个层次,实现松耦合、高复用的设计。例如,通过Spring的DI,可以轻松地更换...
这部分内容主要包含Part07和Part09两个部分,旨在帮助开发者提升在数据库操作和对象关系映射方面的技能。 Part07可能涉及的主题包括: 1. **持久化策略**:讲解了Hibernate的各种持久化策略,如懒加载(Lazy ...
3. **映射文件详解**:详细讲解XML或注解方式的实体映射,包括属性映射、关系映射(一对一、一对多、多对多)、继承映射等。 4. **HQL(Hibernate Query Language)**: Hibernate自己的查询语言,类似于SQL,但更...
1. **二级缓存**:在这一部分,作者会详细讲解如何配置和使用Hibernate的二级缓存,包括EHCache和Infinispan,以及它们在提高应用程序性能方面的作用。 2. **查询缓存**:查询缓存可以存储查询结果,避免重复执行...
1. **LINQ to SQL介绍**:LINQ to SQL是.NET Framework中的一个ORM(对象关系映射)工具,它允许开发人员使用.NET类直接操作SQL Server数据库。这种方法极大地简化了数据访问代码,并提供了类型安全和编译时检查。 ...
本文件《ASAM_XCP_Part2-Protocol-Layer-Specification_V1-1-0》是ASAM XCP协议族中第二部分的内容,专注于协议层的规范说明。 XCP协议族是基于主从结构的通信协议,用于实现从主站(例如上位机软件或测试设备)对...
Hibernate是一个流行的开源对象关系映射(ORM)框架,它允许Java开发者在处理数据库时使用面向对象的方式,极大地简化了数据库操作。在这个版本中,我们可能会发现一系列用于数据库交互的API、配置文件、示例代码和...
Hibernate,作为一个流行的开源对象关系映射(ORM)框架,为Java开发者提供了一种简单而强大的方式来管理数据库操作。在Java应用中,Hibernate使得开发人员可以将业务逻辑与数据库操作解耦,从而更加专注于应用程序...
通过ORM(对象关系映射),它将Java对象映射到数据库表,使得开发者可以使用面向对象的方式来操作数据库。 - Spring:是Java企业级应用开发的核心框架,提供依赖注入、AOP(面向切面编程)、事务管理等功能,使得...
Hibernate是Java领域中一款广泛应用的关系对象映射框架,它允许开发者使用面向对象的方式来操作数据库,大大简化了数据访问层的编码工作。这个压缩包“hibernate4.2.3-part01”很可能是Hibernate 4.2.3版本的一部分...
在Java世界中,ORM(对象关系映射)框架如Hibernate极大地简化了数据库操作。本篇文章主要探讨的是Hibernate中的一对多关联关系映射,这是在实际项目开发中非常常见的一种关系映射类型。通过理解并掌握一对多关联,...
Hibernate是一个广泛使用的Java库,用于将对象关系映射(ORM)到关系数据库,简化数据库操作,让开发者可以使用面向对象的方式来处理数据库。 在Java世界中,ORM工具如Hibernate消除了手动编写SQL语句的需要,使得...
Hibernate作为Java领域中最流行的ORM(对象关系映射)工具,它允许开发者以面向对象的方式处理数据库操作,简化了数据库与Java应用程序之间的交互。一对一关系映射是数据库设计中常见的一种关联类型,表示一个实体与...
22.4.1 配置进程范围内的第二级缓存 22.4.2 配置集群范围内的第二级缓存 22.4.3 在应用程序中管理第二级缓存 22.4.4 Session与第二级缓存的交互模式 22.5 运行本章的范例程序 22.6 小结 22.7 思考题 ...
22.4.1 配置进程范围内的第二级缓存 22.4.2 配置集群范围内的第二级缓存 22.4.3 在应用程序中管理第二级缓存 22.4.4 Session与第二级缓存的交互模式 22.5 运行本章的范例程序 22.6 小结 22.7 思考题 ...