java - 两天的 hibernate 训练应该包括什么

标签 java hibernate

我正在准备 Hibernate 培训。培训为期两天,针对没有 Hibernate 经验但有一定经验的 Java 开发人员。

那么在这样的培训中您会涵盖/省略哪些内容?

最佳答案

我将其分解如下:

第一天 - 简介

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

查看其工作的最快方法是什么?注释驱动(无需急于摆弄 XML)和 Spring(尽管它是很棒的 helper )。

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

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

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

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

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

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

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

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

解释 Hibernate Session 的概念。

解释与 session 相关的 transient 、分离和持久对象。

基于 Spring HibernateTemplate 构建一个 DAO,该 DAO 将允许保留包含 OrderItem DTO 集合的 transient Order DTO。然后创建临时 Order DTO,填充它并将其发送到 DAO。

解释一下只需要一行代码就可以保存整个对象图。

运行应用程序并向他们显示数据库中的结果。

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

要求他们为 Customer 添加新的 DTO,以便 Customer 1-* Order 1-* OrderItem

第 2 天 - 查询和交易

说明查询是通过查询或条件 API 表达的,具体取决于使用代码的性质(静态查询或构建条件)。

解释合取、析取以及连接并映射到内部和外部连接。

说明 HQL 关注对象关系,然后委托(delegate) SQL 的创建。 向 DAO 添加一个方法以根据每个 API 执行查询。

运行应用程序并演示查询工作以及创建的 SQL。

解释交易通常远离 DAO,并且往往存在于服务中。

创建一个注入(inject)了 Order DAO 的服务,并为其添加 @Transaction 注释。在 log4j 中打开调试来观察事务消息。

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

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

关于java - 两天的 hibernate 训练应该包括什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206028/

相关文章:

java - hibernate 说 : table is not mapped -is it true?

java - 将 Char 转换为 Java KeyEvent KeyCode

java - 在 Java 中使用图论算法的面向对象方法是否比基于一般数组的操作更快?

java - Hibernate/Spring - JUnit 因事务而失败(REQUIRES_NEW)

java - JPA JoinColumn 与mappedBy

hibernate 正在不必要地更新多对多

java - 如何检查数据库事务中的数据?

java - 在 jira 工作流 validator 中获取当前用户

java - 从 float 转换为 double

java - 有没有办法让这个Java程序更具交互性?