圣诞促销
学习
课程
任务
调查和小测验
游戏
帮助
提醒时间表
社区
用户
论坛
聊天
文章
成功故事
活动
评论
订阅服务
浅色主题
课程
评论
关于我们
开始
开始学习
立即开始学习
我的进度
课程
目标地图
课程
全部目标
全部级别
删除对象
SQL & Hibernate
第 11 级,
课程 4
使用 remove() 方法删除 最后,让我们看看删除一个对象。原则上,从数据库中删除对象非常简单,但正如他们所说,存在细微差别。有六个这样的细微差别: 使用remove()方法删除 为公司除名 被孤儿移除 使用 JPQL 删除 通过 NativeQuery 删除 软删除() 我们将从最明显的解决方案开始——调用remove()方法。 User user = new User();
映射原始数据类型
SQL & Hibernate
第 12 级,
课程 0
支持的数据类型 在前面的三个级别中,我们对Hibernate 有了一些了解。现在是第二轮的时候了。现在我们将开始研究同样的事情,只是更深入。我们将从将实体类的字段映射到数据库中表的列开始。 如您所知,将实体类中的字段映射到列是使用@Column注释完成的。现在的问题是:什么类型的字段可以用这样的注解映射? Java 中的所有数据类型都可以分为三组: 该类型非常简单,易于存储在数据库中。 类型复杂,需要自己写一个专门的转换器。 该类型非常复杂,需要一个单独的表来存储它的值。 H
有用的数据映射场景
SQL & Hibernate
第 12 级,
课程 1
Mapim枚举 我们已经弄清楚了如何映射原始数据类型:我们使用@Column注释和@Type注释。但并非所有情况都可以被这些注释覆盖。最常见的情况是enum。 Java 枚举对象可以通过两种方式存储在数据库中: 作为一个数字 作为一个字符串 让我们写一个小例子,用户将有一个最喜欢的颜色,它是使用枚举设置的。 enum Color {
首要的关键
SQL & Hibernate
第 12 级,
课程 2
@Id注解 Hibernate 中的每个 Entity 实体都必须有一个字段作为主键:它包含该类所有对象的唯一值。通常,此字段使用@Id注释进行注释。 一般形式: @Id
日期映射
SQL & Hibernate
第 12 级,
课程 3
4.1 历史的补充 将 Java 对象保存到数据库的任务几乎是在 Java 语言创建后立即发生的。当时,Java 语言中只有一种数据类型 Date,它按照 UNIX 时间标准存储时间:自 1970 年以来的毫秒数。 嗯,在当时的数据库中,日期已经有不同的数据类型,至少日期、时间和日期+时间有不同的类型: 日期 时间 时间戳 因此,Java 语言的创建者为其添加了一个特殊的包——java.sql,其中包含类: java.sql.日期 java.sql.时间 java.sql.时
数据刷新管理
SQL & Hibernate
第 12 级,
课程 4
5.1 数据变化时间 当您在数据库中存储各种记录多年时,经常会出现两个问题: 这个条目是什么时候添加到数据库中的? 此条目上次更改的时间是什么时候? 这些是非常频繁的任务,以至于数据库中几乎每个表都添加了两列: 创建时间 更新时间 第一个存储记录创建的日期和时间,第二个存储上次修改的日期和时间。每个实体类都有字段:
对象映射
SQL & Hibernate
第 12 级,
课程 5
6.1 在服务器上存储文件 有时需要将二进制对象保存到数据库中。例如,文件。如果文件很大,那么最合理的做法是将其存储在磁盘上的单独文件夹中,并将其路径存储在数据库中。例子: c:\db-files\users\12355\avatar.jpg
使用不同的数据类型转换器
SQL & Hibernate
第 12 级,
课程 6
7.1 创建自己的类型转换器 有时,当您想在表的一列中存储相当复杂的数据类型时,会出现这种情况。如果 Hibernate 知道如何将它转换为字符串(并返回),那么一切都很好。如果没有,那么您将不得不编写自己的数据转换器。 假设某人决定将用户的出生年份存储在数据库中ГГ.ММ.ДД,例如:98.12.15。您还需要将其转换为常规日期:15/12/1998。然后你必须编写自己的转换器。 为此,您需要实现一个接口AttributeConverter
集合映射
SQL & Hibernate
第 13 级,
课程 0
藏品一览 好了,您已经了解了如何映射简单类型。现在是时候转向更有趣的问题了——如何映射对象集合。 我们可以将对象分为 5 组: Array - 对象数组 列表- 对象列表 Set - 一组对象 地图- 对象字典 集合——对象的集合 以及一个带有集合字段的类的示例: @Entity
@ManyToOne
SQL & Hibernate
第 13 级,
课程 1
2.1 表级链接 我们已经看到 Hibernate 如何在辅助表中存储集合。现在让我们弄清楚如何组织存储真实实体类的完整表之间的关系。 Hibernate中实体类之间的关系有四种: 一对一_ _ 一对多_ _ 多对一_ _ 多对多_ _ 我们将从最简单的选项开始分析——多对一。 您已经遇到过 SQL 中表之间的这种关系。它通常是这样的: ID 姓名 职业 薪水 年龄 加入日期 1个 伊万诺夫伊万 程序员 100000 25 2012-06-30 2个 彼得罗夫彼得 程序员 8
@一对多
SQL & Hibernate
第 13 级,
课程 2
表级关系 让我们再看看我们的两个表: ID 姓名 职业 薪水 年龄 加入日期 1个 伊万诺夫伊万 程序员 100000 25 2012-06-30 2个 彼得罗夫彼得 程序员 80000 23 2013-08-12 3个 伊万诺夫谢尔盖 测试员 40000 三十 2014-01-01 4个 拉比诺维奇·莫伊沙 导演 200000 35 2015-05-12 5个 基连科阿纳斯塔西娅 办公室主管 40000 25 2015-10-10 6个 瓦斯卡 猫 1000 3个 2018
@ManyToMany
SQL & Hibernate
第 13 级,
课程 3
服务台 现在让我们看看另一个常见的情况——多对多。假设我们在任务和员工之间有一个多对多的关系: 员工表中的一名员工可以执行任务表中的多项任务。 任务表中的一项任务可以分配给多个员工。 实体之间的这种关系称为多对多。并且为了在 SQL 级别实现它,我们需要一个额外的服务表。让我们称之为,例如,employee_task。 employee_task 表将只包含两列: 员工ID 任务编号 每次我们将特定任务分配给特定用户时,都会向该表中添加一个新行。例子: 员工ID 任务编号 1
显示更多
1
...
53
54
55
56
57
...
60
Please enable JavaScript to continue using this application.