没有合适的资源?快使用搜索试试~ 我知道了~
Hibernate-Annotation中文教程.docx
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 130 浏览量
2021-12-18
14:31:43
上传
评论
收藏 41KB DOCX 举报
温馨提示
试读
11页
。。。
资源推荐
资源详情
资源评论
(1)
简介:
在过去几年里,Hibernate不断发展,几乎成为 Java数据库持久性的事实标准。
它非常强大、灵活,而且具备了优异的性能。在本文中,我们将了解如何使用
Java 5 注释来简化 Hibernate代码,并使持久层的编码过程变得更为轻松。
传统上,Hibernate的配置依赖于外部 XML 文件:数据库映射被定义为一
组 XML 映射文件,并且在启动时进行加载。
在最近发布的几个 Hibernate版本中,出现了一种基于 Java 5 注释的更为
巧妙的新方法。借助新的 Hibernate Annotation 库,即可一次性地分配所有旧
映射文件——一切都会按照您的想法来定义——注释直接嵌入到您的 Java 类
中,并提供一种强大及灵活的方法来声明持久性映射。
即利用 hibernate 注解后,可不用定义持久化类对应的*.hbm.xml文件,直接以
注解方式写入在持久化类中来实现。
(2)
安装 Hibernate Annotation
第一步,
环境与 jar包:
要使用 Hibernate Annotation,您至少需要具备 Hibernate 3.2和 Java 5。
可以从 Hibernate 站点下载 Hibernate 3.2 和 Hibernate Annotation库。除
了标准的 Hibernate JAR 和依赖项之外,您还需要 Hibernate
Annotations .jar 文件(hibernate-annotations.jar)、Java 持久性 API
(lib/ejb3-persistence.jar)。
添加 hibernate3.2.jar,hibernate-annotations- 3.3.0.jar,
hibernate-commons-annotations.jar 和 ejb3-persistence.jar 。这样就可以
使用 hibernate 的 annotation 了。
如果您正在使用 Maven,只需要向 POM 文件添加相应的依赖项即可,如下所示:
...
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate</artifactId>
<version>3.2.1.ga</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.2.0.ga</version>
</dependency>
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>
第二步,
获取 Hibernate 会话工厂。尽管无需惊天的修改,但这一工作与使用 Hibernate
Annotations有所不同。您需要使用 AnnotationConfiguration 类来建立会话
工厂:
sessionFactory = new AnnotationConfiguration().buildSessionFactory();
第三步,
尽管通常使用 <mapping> 元素来声明持久性类,您还是需要在 Hibernate 配置
文件(通常是 hibernate.cfg.xml)中声明持久性类:
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd
">
<hibernate-configuration>
<session-factory>
<mapping
class="com.onjava.modelplanes.domain.PlaneType"/>
<mapping
class="com.onjava.modelplanes.domain.ModelPlane"/>
</session-factory>
</hibernate-configuration>
近期的许多 Java 项目都使用了轻量级的应用框架,例如 Spring。如果您
正在使用 Spring 框架,可以使用
AnnotationSessionFactoryBean 类轻松建立一个基于注释的 Hibernate 会话
工厂,如下所示:
<!-- Hibernate session factory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.annotation.Annotatio
nSessionFactoryBean">
<property name="dataSource">
<ref bean="dataSource"/>
</property>
<property name="hibernateProperties">
<props>
<prop
key="hibernate.dialect">org.hibernate.dialect.DerbyDialect</prop>
<prop key="hibernate.hbm2ddl.auto">create</prop>
...
</props>
</property>
<property name="annotatedClasses">
<list>
<value>com.onjava.modelplanes.domain.PlaneType</value>
<value>com.onjava.modelplanes.domain.ModelPlane</value>
...
</list>
</property>
</bean>
(3)
hibernate Annotation 标签的使用:
[1]
1.带注释的持久性类也是普通 POJO,它们只是具备了持久性注释的普通 POJO 。
2.事实上,您既可以保持字段的持久性(注释写在成员变量之上),也可以保持
属性(注释写在 getter方法之上)的持久性。
3.常用的 hibernate annotation 标签如下:
-- 注释声明该类为持久类。将一个 Javabean 类声明为一 个实体的数据库
表映射类,最好实现序列化 .此时,默认情况下 ,所有的类属性都为映射到数据表的持久性字段 .若
在类中,添加另外属性 ,而非映射来数据库的 , 要用下面的 Transient 来注解.
="promotion_info).@Table 是类一级的注解 ,定义在@Entity 下,为实体 bean映射表,目录和
schema 的名字,默认为实体 bean 的类名,不带包名.
@Id--注释可以表明哪种属性是该类中的独特标识符 (即相当于数据表的主键 )。
@GeneratedValue
@Transient
--定义自动增长的主键的生成策略 .
--将忽略这些字段和属性,不用持久化到数据库 .适用于,在当前的持久
类中,某些属性不是用于映射到数据表 ,而是用于其它的业务逻辑需要 ,这时,须将这些属性进行
transient 的注解.否则系统会因映射不到数据表相应字段而出错 .
@Temporal(TemporalType.TIMESTAMP)-- 声明时间格式
@Enumerated
@Version
-- 声明枚举
-- 声明添加对乐观锁定的支持
@OneToOne
@OneToMany
@ManyToOne
@ManyToMany
@Formula
-- 可以建立实体 bean 之间的一对一的关联
-- 可以建立实体 bean 之间的一对多的关联
-- 可以建立实体 bean 之间的多对一的关联
-- 可以建立实体 bean 之间的多对多的关联
-- 一个 SQL 表达式,这种属性是只读的 ,不在数据库生成属性 (可以使
用 sum、average、max 等)
@OrderBy
--Many 端某个字段排序(List)
1.2
Hibernate 能够出色地自动生成主键。Hibernate/EBJ 3 注释也可以为主键的自
动生成提供丰富的支持,允许实现各种策略。
其生成规则由@GeneratedValue设定的.这里的@id和@GeneratedValue都是 JPA
的标准用法, JPA提供四种标准用法,由@GeneratedValue的源代码可以明显看出.
JPA提供的四种标准用法为 TABLE,SEQUENCE,IDENTITY,AUTO.
TABLE:使用一个特定的数据库表格来保存主键。
SEQUENCE:根据底层数据库的序列来生成主键,条件是数据库支持序列。
IDENTITY:主键由数据库自动生成(主要是自动增长型)
AUTO:主键由程序控制。
剩余10页未读,继续阅读
资源评论
苦茶子12138
- 粉丝: 1w+
- 资源: 6万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功