当前位置: 首页 > 图灵资讯 > 技术篇> Hibernate 框架与 JDBC 的区别是什么?

Hibernate 框架与 JDBC 的区别是什么?

来源:图灵教育
时间:2024-04-17 15:48:33

hibernate 与 jdbc 区别:抽象级: hibernate 提供高级对象映射和查询生成, jdbc 需要手动编写代码。对象-关系映射: hibernate 映射 java 而对象和数据库表 jdbc 不提供此功能。查询生成: hibernate 使用 hql 然而,简化查询生成 jdbc 需要复杂的写作 sql 查询。事务管理: hibernate 对事务进行自动管理 jdbc 需要手动管理。

Hibernate 框架与 JDBC 的区别是什么?

Hibernate 框架与 JDBC 的区别

简介

Hibernate 是一个对象-关系映射 (ORM) 用于简化的框架 Java 应用程序与数据库之间的交互。JDBC(Java 数据库连接)是一个 API,它允许 Java 应用程序直接访问数据库。

抽象级别

  • JDBC:低级 API,开发人员需要编写大量的样板代码进行查询和更新。
  • Hibernate:高级 API,为简化数据库交互提供对象映射和自动查询。

对象-关系映射

  • JDBC:开发人员需要手动分析和转换数据库结果集,而无需提供对象-关系映射功能。
  • Hibernate:通过映射 Java 对象与数据库表之间的关系,提供对象-关系映射能力。

查询生成

  • JDBC:开发人员必须写复杂的文章 SQL 查询。
  • Hibernate:通过 HQL(Hibernate 查询语言)提供查询生成功能,类似于 SQL,但更面向对象。

事务管理

  • JDBC:手动管理事务,容易出错。
  • Hibernate:可自动提交或回滚事务,提供事务管理功能。

优点

JDBC

  • 灵活性和定制性
  • 较少的开销

Hibernate

  • 提高开发效率
  • 减少编写样板代码的需求
  • 更高的维护性

实战案例

使用 JDBC 所有学生:

// 获得 Connection 对象
Connection conn = DriverManager.getConnection("jdbc:<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a>://localhost/mydb", "user", "password");

// 创建 Statement 对象
Statement stmt = conn.createStatement();

// 执行查询
ResultSet rs = stmt.executeQuery("SELECT * FROM students");

// 循环复历结果集并打印学生姓名
while (rs.next()) {
    System.out.println(rs.getString("name"));
}

// 关闭资源
rs.close();
stmt.close();
conn.close();

登录后复制

使用 Hibernate 所有学生:

// 获得 Session 对象
Session session = HibernateUtil.getSessionFactory().openSession();

// 创建查询
Query query = session.createQuery("FROM Student");

// 执行查询并获取结果列表
List<Student> students = query.list();

// 循环遍历结果列表,打印学生姓名
for (Student student : students) {
    System.out.println(student.getName());
}

// 关闭 Session 对象
session.close();

登录后复制

以上是Hibernate。 框架与 JDBC 有什么区别?详情请关注图灵教育的其他相关文章!