Hibernate Annotation 学习笔记
《Hibernate Annotation 学习笔记》 在Java的持久化框架中,Hibernate以其强大的功能和易用性成为开发者首选之一。而Hibernate Annotation则是Hibernate提供的一种基于注解的实体映射方式,它极大地简化了传统XML配置文件的繁琐工作,使得开发过程更加简洁高效。本文将通过一个实际操作的实例,逐步介绍Hibernate Annotation的基础知识。 一、开始实践 1. 项目准备:我们需要准备JDK 5.0或更高版本,以及Hibernate 3.2.2.ga、hibernate-annotations-3.2.1.GA和ejb3-persistence.jar等库。创建项目时,确保包含必要的lib文件,构建合理的项目结构。 2. `HibernateUtils`类:这个类通常用于管理SessionFactory的创建和获取Session。这里的`HibernateUtils`使用`AnnotationConfiguration`初始化SessionFactory,这是与使用XML配置文件的不同之处。`AnnotationConfiguration`允许我们在不编写.hbm.xml文件的情况下,直接在实体类上使用注解进行对象关系映射。 ```java public class HibernateUtils { private static final SessionFactory sessionFactory; // 省略其他代码... static { try { sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory(); } catch (Exception e) { // 省略异常处理... } } public static Session getSession() { return sessionFactory.openSession(); } } ``` 3. 实体类:例如,创建一个`User`类,使用Hibernate Annotation定义实体属性。`@Entity`标记表明这是一个实体类,`@Id`和`@GeneratedValue(strategy = GenerationType.AUTO)`表示`id`字段是主键,且自动生成。数据库中对应的表结构如下: ```sql CREATE TABLE user ( id INT NOT NULL AUTO_INCREMENT, name VARCHAR(100), password VARCHAR(100), email VARCHAR(255), PRIMARY KEY (id) ); ``` 4. 配置`hibernate.cfg.xml`:这是Hibernate的基本配置文件,包含了数据库连接信息和其他设置。 5. `UserBA`类:编写业务逻辑,如添加用户,通过`HibernateUtils.getSession()`获取Session,然后进行CRUD操作。 执行程序后,数据库中将出现相应的记录,整个过程无需编写.hbm.xml映射文件,大大提高了开发效率。 二、理解Hibernate Annotation 1. 隐式映射:在上面的例子中,我们没有显式指定每个属性的映射,这是因为Hibernate Annotation采用了一种“配置例外”(configuration by exception)的理念。除主键和实体标识外,其他属性默认按照Java Bean的规则进行映射,例如`name`、`password`和`email`自动对应到同名的数据库列。 2. EJB3规范:Hibernate Annotation遵循了EJB3的部分规范,并结合了自身的一些特性。EJB3的注解使得Java EE应用程序的开发更为简单,减少了对XML的依赖。 3. 更深入的学习:要深入了解Hibernate Annotation,可以参考官方文档`hibernate_annotations_3.2.1.pdf`(英文原稿)和中文翻译版`hibernate_annotations_zh.pdf`(满江红翻译)。这些文档详细介绍了各种注解的用法和含义,如`@Table`、`@Column`、`@OneToMany`、`@ManyToOne`等,以及如何处理关联、继承和缓存等复杂场景。 通过不断改进实例并实践,我们可以更好地理解和掌握Hibernate Annotation的精髓,实现更高效、更便捷的Java持久化编程。在后续的学习笔记中,我们将继续探索更多关于Hibernate Annotation的实用技巧和高级特性。
剩余10页未读,继续阅读
- xiyouxyh22012-09-07非常详细,适合新手
- 粉丝: 3
- 资源: 40
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 章节1:Python入门视频
- 无需样板的 Python 类.zip
- ESP32 : 32-bit MCU & 2.4 GHz Wi-Fi & BT/BLE SoCs
- 博物馆文博资源库-JAVA-基于springBoot博物馆文博资源库系统设计与实现
- 旅游网站-JAVA-springboot+vue的桂林旅游网站系统设计与实现
- 小说网站-JAVA-基于springBoot“西贝”小说网站的设计与实现
- 游戏分享网站-JAVA-基于springBoot“腾达”游戏分享网站的设计与实现
- 学习交流-JAVA-基于springBoot“非学勿扰”学习交流平台设计与实现
- EDAfloorplanning
- 所有课程均提供 Python 复习部分.zip