什么应该在两天的Hibernate培训

时间:2010-02-05 09:01:22

标签: java hibernate

我正在准备Hibernate培训。培训将持续两天,针对有经验的Java开发人员,没有Hibernate经验。

那么你会在这样的训练中覆盖/遗漏什么?

3 个答案:

答案 0 :(得分:7)

我会把它分解如下:

第1天 - 简介

什么是Hibernate,它解决了什么问题? ORM,JDBC复杂性,数据库中立性等等等等等等

看到它工作的最快方法是什么?注释驱动(没有掠夺XML)和Spring(对所有人来说都很棒)。

使用Main类显示一个项目,启动安装了log4j的Spring上下文。配置上下文以读取事务注释和DTO注释。配置Hibernate属性以创建 - 删除针对MySQL或Postgres的架构或系统上的任何方便,并在控制台日志中显示SQL。

说明这只是一些样板基础设施的工作,他们现阶段不需要担心它。

解释@Column注释的工作原理,然后创建一个DTO来映射订单。

运行应用程序并演示新创建的架构

解释@OneToMany注释如何工作(所有者和反向等)

为OrderItem创建一个新的DTO并将其链接到Order,以便订单1- * OrderItem。

运行应用程序并演示额外的表和关系。

告诉他们到目前为止还没有编写过SQL,这只是元数据。

解释Hibernate Session的概念。

解释关于Sessions的瞬态,分离和持久对象。

基于Spring HibernateTemplate构建DAO,它将允许包含OrderItem DTO集合的临时Order DTO被持久化。然后创建临时Order DTO,填充它并将其发送到DAO。

说明只需要一行代码来保存整个对象图。

运行应用程序并将结果显示在数据库中。

分发代码并让他们编写单元测试以验证DAO的操作(通过ID字段查找瞬态对象变为持久性)

要求他们为客户添加新的DTO,以便客户1- *订单1- * OrderItem

第2天 - 查询和交易

解释查询是通过Query或Criteria API表达的,具体取决于使用代码的性质(静态查询或构建标准)。

解释连接和析取,连接并映射到内部和外部连接。

解释HQL与对象关系有关,然后委托创建SQL。 向DAO添加方法以基于每个API执行查询。

运行应用程序并演示查询是否有效以及创建了什么SQL。

说明交易通常远离DAO并且倾向于生活在服务中。

创建一个注入了Order DAO的服务,并为其提供@Transaction注释。打开log4j中的调试以观察交易消息。

分发代码并让他们更新单元测试以验证DAO的操作以包含查询结果并使用Customers,Orders和OrderItems预填充数据库。

提出需要实施的各种查询。

答案 1 :(得分:1)

  1. 会话
  2. 交易
  3. 存储/加载
  4. 注释/ XML映射
  5. 缓存如何工作

答案 2 :(得分:1)

所以这些是我自己的想法。

  • 入门 - 设置一个休眠项目
  • 资源 - 需要帮助时去哪里
  • 会话 - 根据我的经验,理解hibernate会话如何工作至关重要
  • 使用Hibernate进行测试 - 我正在考虑将每一段编码作为测试的一部分,以便参与者了解hibernate如何与测试集成。
  • 基本映射 - 所有基本数据类型,多对一关系

我不太确定的事情 - 更复杂的映射 - 双向,一对多,多对多,继承,嵌入式 - 自定义hibernate - 方言,sql-function,事件监听器 - 缓存 - 延迟加载&获取策略