AI Academy
促销
CodeGym University
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题
课时
评论
关于我们
开始
开始学习
立即开始学习
我的进度
课程
任务地图
课程
Java
SQL & Hibernate
级别 16
标准API
SQL & Hibernate
等级 16,
课时 0
Criteria API 简介 在 Hibernate 中有两种写数据库查询的方法: 休眠查询语言 标准API 您很久以前就已经遇到过第一个,是时候熟悉 Criteria API 了。这是一个非常强大的工具,在某些时候它甚至比 HQL 更受欢迎。现在它不再那么流行了,但对于某些任务来说,它肯定是比 HQL 更好的解决方案。 无论如何,不熟悉 Criteria API 就无法学习 Hibernate。我们先写一个小例子,然后我们来分析。例如,我们会从数据库中请求所有员工(Emp
标准 API 第 2 部分
SQL & Hibernate
等级 16,
课时 1
分组和聚合函数 您已经了解了如何向 Criteria API 发出简单请求。让我们看看如何进行更复杂的查询。 例如,我们要编写一个查询来确定一家公司的员工人数。下面是它在 HQL 中的样子: select count(*) from Employee 在 Criteria API 上像这样: CriteriaQuery critQuery = builder.createQuery(Long.class);
本机查询
SQL & Hibernate
等级 16,
课时 2
3.1 简介 我想谈的另一个有用的东西是NativeQuery。如您所知,使用 NativeQuery,您可以使用本机 SQL 编写查询。然而,更有趣的是,您不必在获取查询结果时使用类映射。 我宁愿给你看一个例子: List persons = session.createNativeQuery("SELECT * FROM Person").list();
交易
SQL & Hibernate
等级 16,
课时 3
4.1 Hibernate 中的事务介绍 对于以上所有内容,我想添加有关交易的信息。如您所知,事务是一组必须一起执行的操作。如果任何操作失败或执行出错,则必须取消所有其他操作。 Hibernate 能够处理两种类型的事务: JDBC JTA JDBC 事务实际上是数据库事务。它与使用数据库、JDBC 连接相关联。并且他确保使用数据库时的操作按应有的方式执行:要么全部执行,要么什么都不执行。 JTA - 事务是应用程序级别的事务。它不绑定到任何数据库。它的任务是确保执行某些操作
道
SQL & Hibernate
等级 16,
课时 4
DAO简介 当通过 JDBC 甚至通过 Hibernate 使用数据库时,代码往往比我们想要的更麻烦。数据库查询通常包含: 数据验证 设置请求参数 根据查询参数选择 HQL 查询 使用 Criteria API 构建查询 缓存设置 初始错误处理等 因此,通常的做法是创建特殊的类来处理数据库。这样的类称为 DAO,数据访问对象。他们的任务是隐藏使用数据库的所有复杂性,并为外部提供一个美观方便的接口。 例子: public class EmployeeDAO {
关于 Hibernate 的有用的细微差别
SQL & Hibernate
等级 16,
课时 5
同时与两个基地合作 很多时候,您需要同时处理两个基地。例如,您从一个数据库中读取数据,对其进行处理并将其写入另一个数据库。 或者更常见。您的应用程序有一个本地数据库可以使用,也可以从支持 SQL 数据查询格式的各种远程源读取数据。例如 Excel。 对于这些远程数据源,定制您的 Hibernate 映射非常有用,这样应用程序的业务逻辑可以更简单并且只使用 Java 对象。 最简单的方法是拥有多个配置文件。例如,像这样: hibernate_oracle.cfg.xml
测试休眠代码
SQL & Hibernate
等级 16,
课时 6
基于内存和测试 现在是最有趣的。在测试 Hibernate 代码时,通常您不想使用真正的基础,而是使用某种实现最少功能的存根。 您能想象一个实现大部分 SQL Server 标准的存根吗?我没有。但是,内存数据库本身就非常出色。它的工作原理大致是这样的: 在@BeforeAll 方法中,我们初始化内存中的数据库连接。 在@BeforeEach 方法中,我们获取会话并打开一个事务。 在@Test 方法中,我们使用当前会话和事务。 在@AfterEach 方法中,我们提交事务。
Please enable JavaScript to continue using this application.